Javascript 带有jquery的JS函数始终返回未定义
我正在构建一个Js函数,使用Jquery检查某些输入是否为空,以进行验证。以下是检查输入是否为空的函数:Javascript 带有jquery的JS函数始终返回未定义,javascript,jquery,return-value,Javascript,Jquery,Return Value,我正在构建一个Js函数,使用Jquery检查某些输入是否为空,以进行验证。以下是检查输入是否为空的函数: function isValid(elements){ var validation = false elements.each(function() { if ($( this ).val().length > 0){ validation = true } else {
function isValid(elements){
var validation = false
elements.each(function() {
if ($( this ).val().length > 0){
validation = true
}
else {
validation
}
});
validation
}
但是,无论我做什么,我的函数都会返回未定义的值,而且永远不会返回验证变量中应该包含的布尔值
我应该怎么做才能使函数返回true或false?您的函数
isValid()
返回未定义,因为这是JavaScript中的预期行为:如果函数未指定一个返回值,且您的函数isValid()
没有任何返回,则未定义是“默认”返回值
选中。如果至少有一个元素为空,则可以返回false,否则返回true
function isValid(elements){
var validation = true;
elements.each(function() {
if ($( this ).val().trim().length === 0){
validation = false;
}
});
return validation;
}
通过使用
Array#some
,您可以执行如下代码:
function isValid(elements) {
return !Array.from(elements).some(function(itm){ itm.value.trim().length == 0 });
}
您根本没有从函数返回任何内容,这意味着将返回默认返回值
未定义的
。您将为元素传递什么?您根本没有从函数返回任何内容。您认为验证
行在做什么?你的逻辑也有缺陷。验证很可能没有达到您希望的效果。事实上,我以为上次验证返回的是布尔值,但现在我明白我需要在中使用returnreturn false,每个都将充当中断语句。您可能还希望在长度检查中添加trim()
,否则,用空格填充字段将是有效的