在JQuery Validation SubmitHandler和Form.Submit成功之后,如何阻止输入?

时间:2011-09-16 17:38:26

标签: jquery validation onsubmit

我的表格中有两种验证方法。 一个。 JQuery验证 湾Form.Submit()处理程序中的几个复杂的硬编码规则。

我需要一次禁用提交按钮b验证成功,以便用户不提交两次。

到目前为止,我最好的尝试是将“submitHandler”添加到JQuery验证中,因为......

jQuery("#myForm").validate(
{
    submitHandler: function (form) {
        form.submit({
            success: function (submittedForm, action) {
                alert("submitting");
                $('input[type=submit]', submittedForm).attr('disabled', 'disabled');
            }
        });
    }
});     

当然这似乎不起作用。当它到达SubmitHandler时,两个验证阶段都已经运行了?如果(a)JQuery验证失败,则不会触发此事件。但是,如果(b)自定义验证失败,则会运行它,尽管表单未提交。如果两个(a& b)都通过了它,那么就不会达到内部的“成功”回调。所以我的输入永远不会被禁用。

以下是n个提交验证中的1个示例(其动态形式有其他类似的验证,其中.submit用于在验证失败时返回false)...

$('#myForm').submit(function () {
    // If one is checked they must both be checked.
    if ($(SessionRadioId_2).is(':checked') || $(SessionRadioId_4).is(':checked')) {
        if (!($(SessionRadioId_2).is(':checked')) || !($(SessionRadioId_4).is(':checked'))) {
            alert('If you plan on attending "ABC" you must select it in both Session 2 & 3.');
            return false;
        }
    }

谢谢, 贾斯汀

1 个答案:

答案 0 :(得分:0)

由于多次提交是您要避免的,而不是在验证后禁用提交按钮,请先禁用它,然后在验证失败时重新启用它。