在表单验证中同时显示所有错误消息

胡安·卡洛斯·德卢纳

为什么我的条件语句不能正常工作?我想同时显示两个错误消息。

function validate() {
  if (firstName.value == "") {
    document.getElementById('error').innerHTML = "*Field is empty";
    return false;
  } else if (lastName.value == "") {
    document.getElementById('errorTwo').innerHTML = "*Field is empty";
    return false;
  } else {
    return true;
  }
}
<form name="form" action="action.php" method="post" onsubmit="return validate()">
  <div class="wrapper">
    <span>Name</span>
    <br>
    <input type="text" name="firstName" id="firstName" placeholder="First Name" onfocus="this.placeholder=''" onblur="this.placeholder='First Name'" />&nbsp;
    <label id="error"></label>
    <br>
    <input type="text" name="middleName" id="middleName" placeholder="Middle Name (optional)" onfocus="this.placeholder=''" onblur="this.placeholder='Middle Name (optional)'" />
    <input type="text" name="lastName" id="lastName" placeholder="Last Name" onfocus="this.placeholder=''" onblur="this.placeholder='Last Name'" />&nbsp;
    <label id="errorTwo"></label>
    <br>
    <br>
  </div>

黑暗河马

您的条件语句运行正常,但是您对它们的理解有些差。

一个if/else if声明将停止运行时,条件匹配,因此,如果firstName.value是空的,那么该if语句将被匹配和代码将退出那里,而不是评估条件的休息。

您希望对每个测试使用独立的条件语句,而不是返回true或false,而是将变量设置为true或false并在条件检查之后返回该变量。

所以...

function validate()
{
  var valid = true;
  if(firstName.value=="")
  {
      document.getElementById('error').innerHTML="*Field is empty";
      valid = false;
  }

  if(lastName.value=="")
  {
      document.getElementById('errorTwo').innerHTML="*Field is empty";
      valid = false;
  }

  return valid;
}

只是关于代码本身的注释,以上注释主要是正确的,如果发布整个代码,则可能会得到更多有用的响应。另外,您可以省去==""检查一部分,而只需测试变量的值即可,因为空字符串的计算结果为false。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用 IDataErrorInfo 在验证期间在每个文本框中显示所有错误消息

表单验证对所有字段显示相同的错误消息

在Laravel中,如何验证所有输入字段,如何显示错误消息(如果有的话)以及如果有错误则返回带有输入的表单

带有错误消息的 JQuery 表单验证

如何捕获所有错误并显示错误消息

如何仅将验证消息与所有错误消息一起显示一次

在所有错误消息中打印python版本

如何收集Either Monad中的所有错误消息?

Django表单:如果无效,则显示带有错误消息的表单

表单验证jQuery没有错误

如何显示具有嵌套表单的表单的所有错误

验证表单:如何一次显示所有空白输入而不是一一显示的错误消息?

在 React 中显示不同的错误消息(表单验证)

表单验证错误消息未显示在ModelForm中

jq验证得到所有错误

Laravel Ajax表单验证错误,验证消息中显示错误消息

PHP:尽管禁用了所有错误,但copy()错误消息仍显示在页面上

如果文件太大,Codeigniter 表单验证将返回所有错误

显示所有错误和警告

如何在 selenium 中验证 UI 错误而没有错误消息

闪亮:针对所有错误显示一条消息

PHP-在验证失败的字段和错误消息中重新显示具有有效值的表单

如何使用 react-hook-form 中的单选按钮控制带有错误验证的表单?

JQuery 表单中没有显示错误和成功消息

方法未在Swagger UI(带有Swashbuckle)中显示,但没有错误消息

在表单数组 angular 中验证和显示特定表单控制器的错误消息

表单不更新值,验证失败但没有错误

jQuery Validate不一次显示所有错误消息,一次只显示一个

使用jQuery验证并非所有错误消息都会出现并且输入字段会消失