仅在有效时禁用提交

rak*_*los 11 asp.net-mvc jquery jquery-validate

即时通讯使用jquery与asp.net mvc.我正在做这样的事情,以便在单击时禁用提交按钮.

但如果有验证错误,我不希望它被禁用.

 $('form').submit(function () {
        if ($('form').valid()) {
            $('input[type=submit]', this).attr('disabled', 'disabled');
        }
    });
Run Code Online (Sandbox Code Playgroud)

这使它被禁用,但即使存在验证错误.怎么了?

Lin*_*ron 13

编辑:我第一次搞砸后再试一次:P

$('form').submit(function () {
        if ($('form').valid()) {
            $('input[type=submit]', this).attr('disabled', 'disabled');
        }
    });
Run Code Online (Sandbox Code Playgroud)

也许页面上还有其他形式,它验证了错误的形式?

$('form').submit(function () {
        if ($(this).valid()) {
            $(this).find('input[type=submit]').attr('disabled', 'disabled');
        }
    });
Run Code Online (Sandbox Code Playgroud)

哦,你做了$('form').validate()启用验证(如果你使用MVC的验证,我猜你会自动调用它,但我不是百分之百确定)?

  • 我认为他希望在发布表单时禁用提交按钮,这样用户就不会再次单击该按钮并双击.但是当表单无效时,不会发布任何内容,并且该按钮应保持启用状态. (3认同)