我有一个(非常)基本的验证脚本。我基本上想检查类.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并将所有表现不佳的输入的背景颜色更改为橙色。
答案 0 :(得分:11)
您的代码目前从.val()
获取第一个 .required
的{{3}}:
获取匹配元素集中第一个元素的当前值。
您需要逐个过滤每个,例如:
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;
}
答案 1 :(得分:3)
试试这个jQuery选择器:
$('。required [value =“”] ,. required [value = 0]')
答案 2 :(得分:1)
您也可以通过定义自己的自定义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
});