-1

我正在寻找为什么我的表单没有使用该代码提交:

$("#my_form").on('submit', function(e) {
    if (!myCondition) {
        if (anotherCondition === true) {

            e.preventDefault();
            $('#modal').modal('show');
            $("#btn_valid").on('click', function(e) {
                return true;
            });       
        }
    }
    return true;
});

modale谁出现在 DOM 中)正在显示,但是如果我点击#btn_valid表单未提交并且模式停留在屏幕上。

如果我删除e.preventDefault,则该过程不会停止,这意味着模式正在显示并且在表单提交之后立即显示,而无需按下模式上的按钮。

我究竟做错了什么 ?

谢谢。

4

1 回答 1

1

试试这个:

$(function() {
    var submitForm = false;
    $('#my_form').submit(function(e) {
        if (!submitForm) {
            e.preventDefault();
            $('#modal').modal('show');
        }
    });

    $("#btn_valid").on('click', function(e) {
        submitForm = true;
        $('#my_form').submit();
    });
});

您会看到,一旦您在模式中单击按钮,它将设置submitForm为 true,当您输入表单提交回调处理程序时,您将通过 if 语句,最终像往常一样提交表单。

于 2012-07-16T22:15:14.237 回答