禁用提交按钮,直到表单有效

时间:2012-07-12 14:47:12

标签: jquery validation

我有一个用bassistance validate plugin验证的表单。这一切都很好(顺便说一下很棒的插件)但是我想禁用提交按钮,直到表单有效。

根据作者JörnZaefferer(read comment here)的说法,我必须跟踪所有字段的有效性,然后启用按钮。

所以我假设我首先必须找到我所有的字段,其名称为'required',然后检查它们是否也有一个'valid'类,然后最后启用按钮...但我真的努力做到这一点(我已经花了3.5个小时,这让我发疯了!)

我尝试使用proposed here的计时器技术绑定输入字段以监听“有效”类,并提出以下内容:

function doneTyping () {

var requiredFields = $('input').hasClass('required');

$(requiredFields).each(function(){
    if ($(this).hasClass('valid')){
        console.log('form is valid, enable button here');
    } else {
        console.log('form is not valid yet');
    }
});

}

但是我的代码不起作用...有人可以告诉我,我是否朝着正确的方向前进?

2 个答案:

答案 0 :(得分:2)

function doneTyping () {

var requiredFields = $('input.required');

    if ($("input.required:not(:valid)").length){
        console.log('form is not valid, disable button here');
    } else {
        console.log('form is  valid ');
    }

}

答案 1 :(得分:0)

根据你的插件

,您可以使用以下想法检查表单是否有效
alert (($("#Form1").validationEngine('validate')));

这将为您提供真值或假值,并根据您可以显示或隐藏按钮。

最初使用以下方式隐藏按钮:

$(document).ready(function() 
{
  $("#ButtonSubmit).hide();
}