我正在用jQuery构建一个相当简单的插件来验证表单。当一个元素被评估为有效时,我运行
$(this).prop("valid", false);
在某些情况下,如果有任何东西是无效的,我会想要阻止表单提交。从本质上讲,我正在寻找一种方法来选择所有有效属性为false的元素?我是否必须遍历所有相关元素并检查错误读取,或者是否存在我忽略的jQuery选择器?类似于:
$("input[valid=false]");
那就好了。有什么建议吗?
发布于 2011-05-10 10:18:53
试试这个。
$('input').filter(function() {
return this.valid === false;
});
它将返回所有input
元素(您是指:input
吗?)其中它的valid
属性是false
(注意严格相等比较)。
发布于 2011-05-10 10:22:54
可重用: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");
就这样。
让我们把这一切都放在一个简单的插件中,你可以很容易地将它包含在你的脚本代码中,或者放在一个脚本文件中(如果你使用相同的验证功能,为了在几个页面和几个应用程序上的可重用性):
(function($) {
$.extend($.exp[":"], {
invalid: function(element) {
return element.valid === false;
}
});
})(jQuery);
发布于 2011-05-10 10:20:13
使用以下命令:
$(':input').each( function() {
return $(this).prop('valid');
});
https://stackoverflow.com/questions/5948531
复制