简体   繁体   English

电子邮件验证功能不适用于javascript表单验证中的element [x]

[英]email validation function not working with element[x] in javascript form validation

I added this validate email function here at the top, and i don't know how to make it ref. 我在顶部在此处添加了此验证电子邮件功能,但我不知道如何进行引用。 element[6] which is the email field in the form, and I'm not sure what the element [6],它是表单中的电子邮件字段,我不确定

return re.test(email); 

statement is all about here is the full script code: 语句的全部内容是完整的脚本代码:

<script type="text/javascript">

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\
".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA
-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}   


function validation(form) {
  if(form.elements[3].value == '' ) {
      alert('Please enter your first name');
      form.first_name.focus();
      return false;
  }

  if(form.elements[4].value == '') {
      alert('Please enter your last name');
      form.last_name.focus();
      return false;
  }

  if(form.elements[6].value == '') {
      alert('Please enter your email address');
      form.email.focus();
      return false;

  if (validateEmail(email)) {
    $("#result").text(email + " is a valid email address :)");
    $("#result").css("color", "green");
  } else {
    $("#result").text(email + "is not a valid email address :(");
    $("#result").css("color", "red");
    return false;
  }

  if(form.elements[7].value == '') {
      alert('Please enter your telephone number');
      form.phone.focus();
      return false;
  }

  if(form.elements[17].value == '') {
      alert('Please let us know what you are most interested in');
      form.phone.focus();
      return false;
  }

  if(form.elements[18].value == '') {
      alert('Please enter the area you are most interested in');
      form.phone.focus();
      return false;
  }

  if(form.elements[20].value == '') {
      alert('Please enter the low end of your budget');
      form.phone.focus();
      return false;
  }

  if(form.elements[21].value == '') {
      alert('Please enter the high end of your budget');
      form.phone.focus();
      return false;
  }

  return true;
}
</script>

The function: 功能:

function validateEmail(email) { 
    var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\
".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA
-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/;
    return re.test(email);
}   

has a regex object ( re ), the regex object uses the test function to test if the email passed into the function validates according to the regex. 有一个regex对象( re ),该regex对象使用test函数测试传递给该函数的电子邮件是否根据regex进行了验证。 the test function returns true if it validates as an email and false if it doesnt. 如果test功能可以通过电子邮件验证,则返回true否则,则返回false

you can use it like this: 您可以像这样使用它:

if(!validateEmail(form.elements[6].value)) {
  alert('Please enter a valid email address');
  form.email.focus();
  return false;
}

The test function is native to regex objects, meaning your browser will know what to do with it (specs for the test function: developer.mozilla.org/en/JavaScript/Reference/Global_Objects/ ) 该测试函数是正则表达式对象固有的,这意味着您的浏览器将知道如何处理它(测试函数的规范: developer.mozilla.org/en/JavaScript/Reference/Global_Objects/

Inside you validation() function variable email that is being passed to validateEmail is pretty much undefined. 在您内部,传递给validateEmail validation()函数变量email几乎是未定义的。

You should either: 您应该:

validateEmail(form.email.value);

OR 要么

validateEmail($('#email').val()); // considering that `email` field has id="email"

Hope this helps... 希望这可以帮助...

form.elements was the way you selected DOM elements in 1996. You should be using document.getElementById instead: form.elements是您在1996年选择DOM元素的方式。您应该改用document.getElementById

var resultElement = $("#result");
var emailVal = document.getElementById('emailBoxId').value;
if (validateEmail(emailVal )) {
    resultElement
      .text(emailVal + " is a valid email address :)")
      .css("color", "green");
} else {
    resultElement
      .text(emailVal + "is not a valid email address :(")
      .css("color", "red");
    return false;
}

Create a variable email and set its value to form.elements[6].value 创建一个可变的email并将其值设置为form.elements[6].value

eg 例如

function validation(form) {
  if(form.elements[3].value == '' ) {
    alert('Please enter your first name');
    form.first_name.focus();
    return false;
  }
  //...
  var email = form.elements[6].value
  if (validateEmail(email)) {
    $("#result").text(email + " is a valid email address :)");
    $("#result").css("color", "green");
  } else {
    $("#result").text(email + "is not a valid email address :(");
    $("#result").css("color", "red");
    return false;
  }
 //...
}

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

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