我正在使用jQuery构建一个相当简单的插件来验证表单。当一个元素被评估为有效时,我运行
$(this).prop("valid", false);
在某些情况下,如果有任何内容无效,我将要阻止表单提交。基本上我正在寻找一种方法来选择有效属性为false的所有元素?我是否必须遍历所有相关元素并检查错误读取或是否有我忽略的jQuery选择器?类似的东西:
$("input[valid=false]");
会很好。有什么建议吗?
答案 0 :(得分:5)
试试这个......
$('input').filter(function() {
return this.valid === false;
});
它会返回所有input
元素(您的意思是:input
?),其valid
属性是 false
(注意严格的相等比较)。
答案 1 :(得分:5)
:invalid
jQuery选择器过滤器您可以编写一个简单的选择器过滤器:
$.extend($.exp[":"], {
invalid: function(element) {
return element.valid === false;
}
});
然后只需将它与您使用的任何选择器组合即可获得元素,即:
// all invalid inputs
$(":input:invalid");
// or all invalid text boxes
$("input[type=text]:invalid");
就是这样。
让我们把它全部放在一个简单的插件中,您可以轻松地将其包含在脚本代码中或放入脚本文件中(如果您使用相同的验证功能,则可以在多个页面以及多个应用程序中重复使用): / p>
(function($) {
$.extend($.exp[":"], {
invalid: function(element) {
return element.valid === false;
}
});
})(jQuery);
答案 2 :(得分:0)
使用它:
$(':input').each( function() {
return $(this).prop('valid');
});