简体   繁体   English

JavaScript显示多个错误消息表单提交?

[英]JavaScript display multiple error message form submission?

What am I doing wrong in my JavaScript? 我的JavaScript在做什么错? I would like to display an error message if a user forgets to type in any of my HTML form fields. 如果用户忘记输入我的任何HTML表单字段,我想显示一条错误消息。 I would like to create an error message for the name, email, and phone number fields. 我想为名称,电子邮件和电话号码字段创建一条错误消息。 Even if a user puts in their name, I would like error messages for the remainder 2, or remainder 1, or no error messages. 即使用户输入了他们的姓名,我也希望获得余数2或余数1的错误消息,或者没有错误消息。 I have attached my JavaScript code below. 我在下面附加了我的JavaScript代码。 Thank you for those who help. 感谢您的帮助。

function validateForm() {
  var ret = true;
  var name = document.forms["contactform"]["name"].value;
  if (name == "") {
    document.getElementById('error').innerHTML = "Please enter your name";
    ret = false;
  }
  var email = document.forms["contactform"]["email"].value;
  if (email == "") {
    document.getElementById('erroremail').innerHTML = "Please enter your email";
    ret = false;
  }

  var phone = document.forms["contactform"]["phone"].value;
  if (phone == "") {
    document.getElementById('errorphone').innerHTML = "Please enter your phone";
    ret = false;
  }
  return ret;
}

Create a variable called something like : 创建一个变量,如:

var fieldsInError = "";

Then in your validation in each check if it fails validation add the field: 然后在您的每次检查验证中,如果验证都失败,请添加字段:

fieldsInError += "name," (or whatever the field is)

Then at the end of the function update your error field with something like: 然后在函数末尾使用以下内容更新您的错误字段:

document.getElementById('error').innerHTML = "Please enter " + fieldsInError.substring(0, fieldsInError.length-1);

So your function would look something like this: 因此,您的函数将如下所示:

function validateForm() {
  var fieldsInError = "";
  var name = document.forms["contactform"]["name"].value;
  if (name == "") {
    fieldsInError += "name,"
  }
  var email = document.forms["contactform"]["email"].value;
  if (email == "") {
    fieldsInError += "email,"
  }

  var phone = document.forms["contactform"]["phone"].value;
  if (phone == "") {
    fieldsInError += "phone,"
  }

  if(fieldsInError != ""){
    document.getElementById('error').innerHTML = "Please enter " + fieldsInError.substring(0, fieldsInError.length-1);
    return false;
  } else {
    return true;
  }
}

If you want separate error display for each input you could just add else with empty innerHTML . 如果要为每个输入单独显示错误,则可以添加else并添加空白的innerHTML

Something like this: 像这样:

var name = document.forms["contactform"]["name"].value;
var nameError = document.getElementById('error');
if (name == "") {
  nameError.innerHTML = "Please enter your name";
  ret = false;
} else {
  nameError.innerHTML = "";
}

Full example here: https://jsfiddle.net/1h1tkh7y/ 此处的完整示例: https : //jsfiddle.net/1h1tkh7y/

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM