Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/402.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取仅需要1时返回的所有错误消息_Javascript - Fatal编程技术网

Javascript 获取仅需要1时返回的所有错误消息

Javascript 获取仅需要1时返回的所有错误消息,javascript,Javascript,我正在尝试验证抵押月份字段,该字段将验证输入是否正确(必须存在。必须是数字。必须等于当前月份或大于当前月份1个月。允许值:01到12,包括在内)。我的验证似乎在工作,尽管当我测试评估字段是否为空时,它会显示每个错误消息,而我只希望看到一条表示为空的消息。我该怎么做?多谢各位 我的Javascript函数: function valMortMonth(errMessages){ var month = document.getElementById("mortMonth").value; if (

我正在尝试验证抵押月份字段,该字段将验证输入是否正确(必须存在。必须是数字。必须等于当前月份或大于当前月份1个月。允许值:01到12,包括在内)。我的验证似乎在工作,尽管当我测试评估字段是否为空时,它会显示每个错误消息,而我只希望看到一条表示为空的消息。我该怎么做?多谢各位

我的Javascript函数:

function valMortMonth(errMessages){
var month = document.getElementById("mortMonth").value;
if (month.length === 0) {
errMessages += "<li>Mortgage Month can't be left empty</li>";
}

var monthValue = parseInt(month);

if (isNaN(monthValue)) {
errMessages += "<li>Mortgage Month must be numeric</li>";
}

var month = (new Date()).getMonth() + 1;

if (monthValue < 1 || monthValue> 12) {
errMessages += "<li>Mortgage Month must be between month 1 to 12</li>" ;
}

if (!(monthValue === month || monthValue === month + 1)) {
errMessages += "<li>Month must be equal to current month or 1 greater</li>";
}
return errMessages;
}

如果您只需要一条消息,那么只需在该消息的
If
条件中添加一个返回,如下所示:

  if (month.length === 0) {
    errMessages += "<li>Mortgage Month can't be left empty</li>";
    return errMessages;
  }
if(月长==0){
errMessages+=“
  • 抵押月不能为空”
  • ”; 返回错误消息; }

    如果您确实希望一次只显示一条信息,您可以在每个
    条件中添加此信息。

    因此,我会在每条错误信息的末尾添加此信息?是的,如果您只希望显示一条信息。这是正确的。我已经按照建议添加了回报,而且效果很好。唯一的问题是它仍然跳过了应该说它是空的错误,并直接转到“不是数字”错误消息。我不知道为什么会发生这种情况……在我的测试中,逻辑似乎是正确的,它起了作用。然而,如果有一个空的空间在那里,它不会工作。我建议将其改为更像
    if(month.length==0 | | |!month.trim()){……
    此外,如果这有帮助,请向上投票(单击分数旁边的“向上”箭头)
    Mortgage Month must be numeric
    Mortgage Month must be equal to current month or 1 month greater
    
      if (month.length === 0) {
        errMessages += "<li>Mortgage Month can't be left empty</li>";
        return errMessages;
      }