0

我的 JavaScript 遇到的问题是,当我为空白表单选择“发送”按钮时,它会告诉我要完成哪些字段(我想要的)。选择“确定”后,它要求我“请输入有效的电子邮件地址”。在另一个窗口。

如果有人选择“发送”而不填写表格,任何人都可以帮助我消除第二个窗口的功能和逻辑吗?我是否需要为“输入有效的电子邮件地址”创建一个新功能?

这是代码:

javascript

function checkforblank() {
  var errormessage = "";
  if (document.getElementById('fname').value =="") {
    errormessage += "enter your first name \n";
  }
  if (document.getElementById('lname').value =="") {
    errormessage += "enter your last name \n";
  }
  if (document.getElementById('email').value =="") {
    errormessage += "enter your email \n";
  }
  if (document.getElementById('confirmEmail').value =="") {
    errormessage += "confirm your email \n";
  }

  if (errormessage != "") {
    alert(errormessage);
    return false;
  }
};

function verifyEmail() {
  var status = false;     
  var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
  if (document.myForm.email.value.search(emailRegEx) == -1) {
    alert("Please enter a valid email address.");
  }
  else if (document.myForm.email.value != document.myForm.confirmEmail.value) {
    alert("Email addresses do not match.  Please retype them to make sure they are the same.");
  }
  else {
    alert("Thank you for your interest!");
    status = true;
  }
  return status;
}

function confirmEmailAddresses() {
  checkforblank();
  verifyEmail();
}

html

<div id="content">
<form name="myForm" action="#" method="get" enctype="application/x-www-form-urlencoded" onsubmit="">
<table width="377" height="96">
  <tr>
    <td style="text-align: right">First Name:</td>
    <td><label for="FirstName"></label>
      <input type="text" name="fname" id="fname"></td>
  </tr>
  <tr>
    <td style="text-align: right">Last Name:</td>
    <td><label for="LastName"></label>
      <input type="text" name="lname" id="lname"></td>
  </tr>
  <tr>
    <td style="text-align: right">E-mail:</td>
    <td><input type="email" name="email" id="email"></td>
  </tr>
  <tr>
    <td style="text-align: right">Confirm E-mail:</td>
    <td><input type="email" name="confirmEmail" id="confirmEmail"></td>
  </tr>
</table>
<input type="submit" value="Send" onClick="confirmEmailAddresses()"><input type="reset" value="Reset Form">

</form>
                </div>

我对 JavaScript 很陌生,所以请尽可能简单!:) 谢谢。

4

3 回答 3

1

代替

function confirmEmailAddresses(){
    checkforblank();
    verifyEmail();
}

function confirmEmailAddresses(){

    if ( checkforblank() ) {
    verifyEmail();
    }
}

else return true;像这样添加

if (errormessage != "") {
    alert(errormessage);
    return false;
  } else return true;

所以if(在checkforblank()函数中)errormessage不是(!=)空("")然后checkforblank()告诉脚本(returns)trueifconfirmEmailAddresses()现在)并且只有当 checkforblank()是真实的(true有点真实)然后verifyEmail()运行,结束(;)。:p

于 2013-09-10T02:33:32.630 回答
0

好的,我想你要的是这个(jquery)

$(":submit").click( function(event) {
      if(!checkforblank() || !verifyEmail()) {
      event.preventDefault();
    }
});

如果您这样做,请确保在 html中包含after then 按钮。或包含在$(document).ready

于 2013-09-10T04:17:58.963 回答
0

这是你想要的吗?

   function confirmEmailAddresses() {
      if(checkforblank() && verifyEmail())
         return true;
      else return false;
    }
于 2013-09-10T03:54:45.780 回答