0

我在这样的按钮上绑定 mousedown:

$(".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');
    });
}

在没有 mousedown 处理程序的情况下单击它时,如何让它继续执行它应该做的事情?

4

1 回答 1

1
$(this).trigger('click');

在 return true 之前,它就像一个魅力。

于 2013-03-06T20:34:33.517 回答