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


PHP Code for Email Comparison / Verification

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

如:

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就会显示一条警报,称:"电子邮件不匹配"

为了获得额外的度量,我在表单的属性中插入了以下内容:onsubmit="return confirmEmail()

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

不幸的是,这就是我的困境。因为:在第二次警告之后,如果用户仍然没有修改"确认电子邮件",则"提交"按钮仍然有效。表单将被发送。

我如何修改代码,以便:错误消息继续显示,直到用户正确更改电子邮件2??

(我试着使用WHILE函数和DO….WILE函数。它们起作用了…………只是,错误消息不断显示………,不允许我对电子邮件字段进行必要的更正(哈哈)。我不得不完全关闭窗口)

首先,给提交按钮一个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;
}

您可以做的是:

 <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>

我会用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方法发送它们。

试试这个兄弟,

<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>