带有jquery的JS函数总是返回undefined

时间:2016-07-26 15:36:31

标签: javascript jquery return-value

我正在使用Jquery构建一个Js函数,检查某些输入是否为空以进行验证。这是检查输入是否为空的函数:

   function isValid(elements){
      var validation = false
      elements.each(function() {
        if ($( this ).val().length > 0){
          validation = true
        }
        else {
          validation
        }
      });
      validation
    }

然而无论我做什么,我的函数都返回undefined,而不是应该包含在验证变量中的布尔值?

我应该怎样做才能使我的函数返回true或false?

3 个答案:

答案 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