当用户以前填写表单时,jQuery validate()无法正常工作

时间:2016-04-01 18:07:28

标签: jquery jquery-validate

经过多次努力,我终于得到了我的jQuery validate()来做我想做的事。

有一个例外。我看到其他人有这个问题,但现在我找不到那个页面,所以我不得不再问。

让我们使用“名字”作为我的字段。这是必需的,所以,如果我选择它,或者提交空白,我执行代码(在这种情况下,将invalid类添加到元素中)并且一切正常。

如果我输入我的名字,它会成功应用valid类。

然而,如果我开始输入我的名字,并且在输入“D”之后,它会显示我之前输入的值(因为表格不会这样做)而我选择它,会发生奇怪的事情。

输入字段的样式消失了。它不显示正在应用的有效或无效类。实际上它甚至没有显示我放在空白字段上的CSS。

如果我提交,它会被视为有效但仍然没有样式更改,除非我在该字段中输入其他内容。

在我的表单中的所有字段都是如此。

编辑:添加jquery代码

$("#myForm").validate({
    onkeyup: function (valueToBeTested) {
        if($(valueToBeTested).hasClass('required')){
            if($(valueToBeTested).valid()){
                $(valueToBeTested).removeClass('invalid').addClass('valid');
            } else{
                $(valueToBeTested).removeClass('valid').addClass('invalid');
            };
        };
    },
    onfocusout: function (valueToBeTested) {
        if($(valueToBeTested).hasClass('required')){
            if($(valueToBeTested).valid()){
                $(valueToBeTested).removeClass('invalid').addClass('valid');
            } else{
                $(valueToBeTested).removeClass('valid').addClass('invalid');
            };
        };
    },
    rules:
        {
       ....(rules)
    }
}); 

就像我说的那样,它甚至在提交时承认字段值是有效的。它只是忽略onkeyuponfocusout,直到我输入另一个字符,如果我从自动建议下拉列表中选择了值。

0 个答案:

没有答案