jQuery – 查找具有没有值的给定类的任何输入

我有一个(非常)基本的validation脚本。 我基本上想检查类.required的任何输入,以查看是否有值a)空白或b)0,如果是,则在我的表单提交上返回false。 此代码似乎没有返回false:

function myValidation(){ if($(".required").val() == "" || $(".required").val() == 0){ $(this).css({ backgroundColor:'orange' }) ; return false; } } 

将此函数附加到我的表单的onSubmit处理程序不会返回任何结果。 任何关于此事的光明都将受到赞赏。

我基本上在使用类.required迭代所有输入的函数之后,如果ANY有空值或0值,则在我的提交时返回false并将所有不良行为输入的背景颜色更改为橙​​色。

您的代码当前从.val()文档中获取第一个.val().val()

获取匹配元素集中第一个元素的当前值。

您需要逐个过滤每个,如下所示:

 function myValidation(){ var allGood = true; $(".required").each(function() { var val = $(this).val(); if(val == "" || val == 0) { $(this).css({ backgroundColor:'orange' }); allGood = false; } }); return allGood; } 

或者更紧凑的版本:

 function myValidation(){ return $(".required").filter(function() { var val = $(this).val(); return val == "" || val == 0; }).css({ backgroundColor:'orange' }).length === 0; } 

试试这个jQuery选择器:

$(’。required [value =“”] ,. required [value = 0]’)

您也可以通过定义自己的自定义jQuery选择器来实现:

 $(document).ready(function(){ $.extend($.expr[':'],{ textboxEmpty: function(el){ return ($(el).val() === ""); } }); }); 

然后像这样访问它们:

 alert($('input.required:textboxEmpty').length); //alerts the number of input boxes in your selection 

所以你可以在它们上放一个.each

 $('input.required:textboxEmpty').each(function(){ //do stuff });