1

使用 jQuery 验证 - 验证模糊:

$('input, select, radio, checkbox').blur(function(){
        $("#createAccount").validate().element(this);
});

如果用户在表单中切换,并且该字段是可选的,则该字段被验证为 ok(并且添加了一个类,更改了输入字段的颜色等)

我想做的是忽略对不需要的空字段的验证。

我目前的忽略仅适用于:hidden

ignore: ":hidden",

当我尝试时:

ignore: ":hidden, .ignore",

这将在任何关注类忽略的字段时引发错误。所以这几乎可以工作,除非您忽略该字段,否则该字段上的其他验证不会触发。所以该字段是可选的,但仍有验证。我只是不希望它在空的可选字段上触发成功验证。

谢谢!

编辑

所以逻辑应该是: onblur 如果为空且不需要,则忽略 - 如果不为空,则运行附加到该字段的验证。

4

5 回答 5

2

在验证行之前添加以下行

if($(this).val()=="")
{
 return;
}

对于文本字段,它是“”。对于 Select,它可能是“0”或您为第一个选项指定的任何其他值。

于 2012-05-10T19:21:51.873 回答
0

您可以为不需要的字段添加不同的 css 类,并忽略这些类的字段。例如

ignore: ".ignore"

ignore可以在哪里使用

<input type="text" class="ignore" value=""/>

只是我的想法。

于 2012-05-10T19:19:07.583 回答
0

我不确定 validate 是如何工作的,但您可以向您不想验证的字段添加一个标志/类,然后忽略那些

更新

好的,如果可选的空字段有忽略类,那么

$('input, select, radio, checkbox').blur(function(){
    if( !($(this).hasClass('ignore') && $(this).val()=="")) {       
        $("#createAccount").validate().element(this);
    }
});

代码可能不是 100% 正确,但概念是存在的,仅验证字段是否为空且字段没有 .ignore 类

于 2012-05-10T19:19:50.640 回答
0

也许我不太明白这个问题,但这里有一个例子,看起来像你试图用 1 个被忽略的文本框和 1 个隐藏的文本框做的事情:http: //jsfiddle.net/brianmat/wJveQ/2/

相关的jQuery:

$(document).ready(function() {

$("form").validate({
    invalidHandler: function(e, validator) {
        var errors = validator.numberOfInvalids();
        if (errors) {
            var message = errors == 1 ? 'You missed 1 field. It has been highlighted below' : 'You missed ' + errors + ' fields.  They have been highlighted below';
            $("div.error span").html(message);
            $("div.error").show();
        } else {
            $("div.error").hide();
        }
    },
    ignore: ".ignore, :hidden",
    errorPlacement: function(error, element) {},
    submitHandler: function(form) {
        $("div.error").hide();
        form.submit();
    }
});

});​
于 2012-05-10T23:44:43.653 回答
0

这就是我为实现此目的所做的:

对于需要被忽略直到它有一个值的输入,我在输入中添加了一个类 - “忽略”

$('.ignore').blur(function(){
        if( $(this).val()=="") {
         $(this).parent().removeClass("inputSuccess");
        }
    });

在函数中,如果输入具有类忽略且未输入任何值,则删除我在验证调用中设置的有效类。输入值时,将在这些项目上触发正常验证。

于 2012-05-14T13:16:05.300 回答