用于电子邮件比较/验证的PHP代码

时间:2015-02-09 20:10:02

标签: javascript php html

我正在尝试创建一个比较两个电子邮件字段的函数。

如:

Email : <input type="text" name="email" id="email" value="<?=$email?>"    
required> 

Confirm email : <input type="text" name="email2" id="email2" 
onblur="confirmEmail()" value="<?=$email2?>" required>

以下是我在HTML中插入的JavaScript代码:

 <script type="text/javascript">
 function confirmEmail() {
 var email = document.getElementById("email").value
 var email2 = document.getElementById("email2").value
 if (email != email2) {
 alert('Email Not Matching!');  }
    }
 </script>

代码有效。

用户输入第二个电子邮件地址后,localhost会显示一条提示:&#34; 电子邮件不匹配&#34;

为了进行额外测量,我将以下内容插入到表单的属性中: onsubmit =&#34; return confirmEmail()

因此,如果用户忽略第一个警告,当他试图按下“提交”按钮时,会收到第二个警告。

不幸的是,这就是我被困住的地方。因为:在第二次警告之后,如果用户仍然没有修改&#34;确认电子邮件&#34; ,SUBMIT按钮仍然有效表格被发送。

如何修改代码,以便:错误消息继续显示,直到用户正确更改email2?

(我尝试使用WHILE函数和DO .... WHILE函数。他们工作............除了,错误消息一直显示... ......并且不允许我对电子邮件字段进行必要的更正(哈哈)。我必须完全关闭窗口。

4 个答案:

答案 0 :(得分:0)

我会用JavaScript提交表单。

<form>
  Email : <input type="text" name="email" id="email" value="<?=$email?>"    
required> 

  Confirm email : <input type="text" name="email2" id="email2" 
onblur="confirmEmail()" value="<?=$email2?>" required>
</form>

<button onclick="formSubmit()">Learn More</button>

您的formSubmit()函数只需拉入值并在正确检查后提交。这样,无论用户输入什么内容,都必须在提交之前完成验证。

function formSubmit() {
  var email = document.getElementById("email").value;
  var email2 = document.getElementById("email2").value;
  if (email != email2) {
  alert('Email Not Matching!');  
} else {
  if (window.XMLHttpRequest) {
      // code for IE7+, Firefox, Chrome, Opera, Safari
      xmlhttp=new XMLHttpRequest();
  } else { // code for IE6, IE5
      xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
  xmlhttp.open("GET","/Your/Path/To/Your/Form-Processing/?email="+email,true);
  xmlhttp.send();
}

上面的函数将放在脚本标记中。它会针对每个检查emailemail2,然后使用GET将email提交到处理页面,方式与表单相同。您也可以通过document.getElementById('#id').value获取其他变量,然后通过GET方法发送它们。

答案 1 :(得分:0)

首先,为您的提交按钮提供如下ID:

<input type="submit" value="Submit" id="mySubmit" disabled="disabled">

在if块中添加:

if (email !== email2) {
  alert('Not matching')
  document.getElementById("mySubmit").disabled = true;
}else{
  document.getElementById("mySubmit").disabled = false;
}

答案 2 :(得分:0)

你能做的是:

 <script type="text/javascript">
 var count=0;

 function confirmEmail() {
 var email = document.getElementById("email").value
 var email2 = document.getElementById("email2").value

 function chkEmail(){
     if (email != email2 && count==0)
       { alert('Email Not Matching!'); count++ }
     else if(email!=email2 && count ==1)
       //display warning
   }
chkEmail();
    }
 </script>

答案 3 :(得分:0)

试试这个兄弟,

<form name="form" method="post" action="">
Email : <input type="text" name="email" id="email" value="<?=$email?>" required> 

Confirm email : <input type="text" name="email2" id="email2" value="<?=$email2?>" required>
<input type="submit" value="submit" onsubmit="return confirmEmail();"/>

</form>

和java脚本

 <script type="text/javascript">


 function confirmEmail() {
 var email = document.getElementById("email").value;
 var email2 = document.getElementById("email2").value;


     if (email != email2)
       { alert('Email Not Matching!');  return false; }
     else {
       return true;
      }

   }

 </script>