【问题标题】:Jquery Validate Plugin Prevent Double Submit On ValidationJquery Validate Plugin 防止双重提交验证
【发布时间】:2011-05-13 19:41:14
【问题描述】:

我正在使用 jquery 验证插件:

http://bassistance.de/jquery-plugins/jquery-plugin-validation/

我只想在验证通过时禁用提交按钮:

试过了

$("#submit").click(function()
{
    $(this).attr("disabled", "disabled");
});

但是即使验证失败,这也会禁用提交按钮。有没有办法只在验证通过并发生提交事件时禁用提交?

【问题讨论】:

    标签: jquery validation


    【解决方案1】:

    查看源代码,看起来您应该能够覆盖invalidHandler,类似于:

    $("#form").validate({
        submitHandler: function(form) {
        // disable your button here
        form.submit();
       },
       invalidHandler: function() {
         // re-enable the button here as validation has failed
       }
    });
    

    乍一看,这似乎是您希望使用 validate 插件执行此操作的方式,但不幸的是,我没有时间 atm 来摆弄它以确保 确定 它有效。

    编辑:

    这应该可以(我使用了一个名为 fname 的单个文本字段进行测试):

    $('#frm').bind('invalid-form.validate', function(){
        // you can add extra validation handling here if you want to
    });
    
    $('#frm').validate({
        rules: {
            fname: "required"
        },
        submitHandler: function(form){
            $('form input[type=submit]').attr('disabled', 'disabled');
            form.submit();
        }
    });
    

    submitHandler仅在验证通过后才被点击。

    【讨论】:

    • 我试过了,表单元素禁用但表单没有提交。还有其他想法吗?
    • 还是一样的结果。还有其他想法吗?
    • 这是因为我的提交输入被命名为提交。现在已经修复了。
    • 不应该 form.submit() 是 f.submit() 吗?
    • 这只是因为浏览器的提交事件没有被阻止。仍然会有例外,因为 form 未定义。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多