jQuery的JS函数总是返回undefined
我正在构建一个JQuery函数,用Jquery检查某些输入是否为空或者不用于验证。下面是一个检查,如果输入是空的或不是函数:jQuery的JS函数总是返回undefined
function isValid(elements){
var validation = false
elements.each(function() {
if ($(this).val().length > 0){
validation = true
}
else {
validation
}
});
validation
}
但无论我做什么我的函数返回undefined,绝不是应该包含在验证变量的布尔值?
我应该怎么做我的函数返回true或false?
如果至少有一个元素为空,则返回false,否则返回true。
function isValid(elements){
var validation = true;
elements.each(function() {
if ($(this).val().trim().length === 0){
validation = false;
}
});
return validation;
}
在'each'内返回false将作为一个突破语句 –
您可能还需要添加一个trim()长度检查,否则用空格填充字段将是有效的 –
函数isValid()
返回undefined,因为这是JavaScript中的预期行为:undefined是如果函数没有指定一个返回值的“默认”返回值,并且函数isValid()
没有任何返回值。
检查this answer。
您可以通过使用Array#some
做你的代码像下面,
function isValid(elements) {
return !Array.from(elements).some(function(itm){ itm.value.trim().length == 0 });
}
你是不是在所有返回从功能,这意味着作为默认值返回将undefined
返回任何东西。
你在传递什么元素? –
你完全没有从功能中返回任何东西。 –
你认为'验证'行正在做什么?你的逻辑也是有缺陷的。验证很可能不会做你想做的事情。 – epascarello