我正在使用Jquery构建一个Js函数,检查某些输入是否为空以进行验证。这是检查输入是否为空的函数:
function isValid(elements){
var validation = false
elements.each(function() {
if ($( this ).val().length > 0){
validation = true
}
else {
validation
}
});
validation
}
然而无论我做什么,我的函数都返回undefined,而不是应该包含在验证变量中的布尔值?
我应该怎样做才能使我的函数返回true或false?
答案 0 :(得分:2)
您的函数isValid()
返回未定义,因为这是JavaScript中的预期行为:如果函数未指定一个返回值,则undefined是“默认”返回值,并且您的函数isValid()
没有'有任何回报。
检查this answer。
答案 1 :(得分:2)
如果至少有一个元素为空,则可以返回false,否则返回true。
function isValid(elements){
var validation = true;
elements.each(function() {
if ($( this ).val().trim().length === 0){
validation = false;
}
});
return validation;
}
答案 2 :(得分:2)
您可以使用Array#some
,
function isValid(elements) {
return !Array.from(elements).some(function(itm){ itm.value.trim().length == 0 });
}
您根本没有从函数返回任何内容,这意味着将返回默认返回值undefined
。