我有四个字段,如果至少有一个字段有值,我的函数返回true,如果所有字段都没有值返回false,我该怎么做?
我的尝试:(这不会像我想的那样工作)
function required_eachinput(){
result = true;
$('.myclass').each(function(){
var $val = $(this).val();
var ok = $val.each(function(){});
alert(ok);
if(!$val){
$(this).css("background", "#ffc4c4");
result = false;
}
$(this).keyup(function () {
$(this).closest('form').find('input').css("background", "#FFFFEC");
})
});
return result;
}
答案 0 :(得分:4)
我的建议是:
function required_eachinput(){
var result = '';
$('.myclass').each(function(){
result += $(this).val();
});
return result != '';
}
它的作用基本上是连接所有4个字段的所有值(可以是任意数量的字段)。如果结果不是空字符串,则表示至少有一个字段具有值。否则,一切都是空的。
答案 1 :(得分:4)
您可以过滤掉空元素并检查是否有任何遗留:http://jsfiddle.net/bbFA6/1/。
function required_eachinput() {
return $(".myclass").filter(function() {
return $(this).val() !== ""; // only keep non-empty elements
}).length > 0; // check whether you have any non-empty elements left
}
答案 2 :(得分:1)
不破坏你的代码:
function required_eachinput(){
result = false; // Start with false
$('.myclass').each(function(){
var $val = $(this).val();
if($val){
result = true; // If any is not empty return true
} else {
$(this).css("background", "#ffc4c4");
}
$(this).keyup(function () {
$(this).closest('form').find('input').css("background", "#FFFFEC");
});
});
return result;
}
答案 3 :(得分:1)
你可以使用平原JAVASCRIPT吗?
function required_eachinput(){
var inputs = document.querySelectorAll('.myclass');
for(var i = 0, len = inputs.length; i < len; i++){
if(inputs[i].value !== ''){
return true;
}
return false;
}
}