私は次のようなボタンにマウスダウンをバインドしています:
$(".save_btn").bind("mousedown", {PID: ParticipantID}, LicenseCheck);
LicenseCheck関数では、いくつかのフィールドを検証しています。検証が失敗した場合は、event.preventDefaultを呼び出し、関数を呼び出してエラーメッセージを表示し、falseを返します。検証が成功した場合、trueを返します。しかし、イベントは継続せず、まるで停止したかのようです。
function LicenseCheck(event) {
var PID = event.data.PID;
var showError = false;
var c = null;
if($.trim($("#lname_"+PID).val()) != "") {
if($.trim($("#ln_"+PID).val()) == "") {
showError = true;
c = $("#ln_"+PID);
}
} else {
if($.trim($("#lname_"+PID).val()) == "") {
showError = true;
c = $("#lname_"+PID);
}
}
if ($('input[type=radio][name^="lt_'+PID+'"]:checked').length == 0) {
showError = true;
c = $('input[type=radio][id^="lt_'+PID+'"]')[0];
}
if(showError) {
ShowFormError(c, PID);
event.preventDefault;
return false;
} else {
return true;
}
}
function ShowFormError(control, PID) {
$parent = $("#p_div_"+PID);
var pos = control.position();
$arrows = $("<div>", {"class": "formErrorArrow"})
.append($("<div>", {"class": "line10", html: '<!-- -->'}))
.append($("<div>", {"class": "line9", html: '<!-- -->'}))
.append($("<div>", {"class": "line8", html: '<!-- -->'}))
.append($("<div>", {"class": "line7", html: '<!-- -->'}))
.append($("<div>", {"class": "line6", html: '<!-- -->'}))
.append($("<div>", {"class": "line5", html: '<!-- -->'}))
.append($("<div>", {"class": "line4", html: '<!-- -->'}))
.append($("<div>", {"class": "line3", html: '<!-- -->'}))
.append($("<div>", {"class": "line2", html: '<!-- -->'}))
.append($("<div>", {"class": "line1", html: '<!-- -->'}));
$item = $("<div>", {"class": "formError hidden", id: "form_error_"+PID})
.append($("<div>", {"class": "formErrorContent", html: "* This field is required<br>"}))
.append($arrows);
$parent.append($item);
$("#form_error_"+PID).css("top", pos.top-35);
$("#form_error_"+PID).css("margin-top", 0);
$("#form_error_"+PID).css("opacity", 0.87);
$("#form_error_"+PID).css("left", pos.left+control.width()+-30);
$("#form_error_"+PID).css("position", "absolute");
$("#form_error_"+PID).removeClass('hidden');
$("#form_error_"+PID).bind('click', function() {
$(this).addClass('hidden');
});
}
マウスダウンハンドラーなしでクリックされたときに実行されるはずの処理を続行するにはどうすればよいですか?