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 });