jquery:阻止表单提交ajax验证错误

时间:2013-02-14 07:39:48

标签: jquery ajax forms

我有一个带有一些ajax验证字段的表单。(并非所有字段都使用ajax验证)

如果其中一个字段出错,我想阻止表单提交。

我希望它对于我使用ajax验证的其他表单是通用的。

1旗帜不会起作用。

这就是ajax字段在出错时的样子:

<label id="id_name_lab" class="error">name</label>
<input id="id_name" type="text" maxlength="128" name="name">
<label id="id_name_succ_icn" class="icon_succ" style="display: none;"></label>
<label id="id_name_load_icn" class="icon_load" style="display: none;"></label>

2 个答案:

答案 0 :(得分:0)

使用Jquery:

 $("form").submit(function(e) {
                e.preventDefault();
                return false;
 });

没有jquery:

return false;

在表单的onsubmit元素上。

答案 1 :(得分:0)

我的想法是使用回调链。

伪码

$("form").one( "submit", function() {
    var self = this;

    // ajax validation
    $.ajax( /* ... */ )
        .done( function() {
            // call validation, if form is valid, ajaxValidation calls submit again.
            ajaxValidation( self );
        });

    // first submit is always ignored.
    e.preventDefault();
    return false;
});

function ajaxValidation( target ) {
    // check valid & call submit
}

,如果需要,它需要上面的绑定提交处理程序。