Jquery - 匹配两个电子邮件地址

时间:2011-01-18 02:39:03

标签: jquery email validation matching

我正在设置注册表单并使用jquery验证脚本。有两个电子邮件地址输入文本框。电子邮件1必须与电子邮件2匹配。我们如何验证这两封电子邮件以确保第二封电子邮件与第一封电子邮希望有人可以帮助验证脚本。这是我的文本框编码。

<label  class="input required">7. Email Address:</label>
<input name="author_email" id="author_email" class="inputclass pageRequired email" maxlength="254" title="Email address required" /> <br />

<label  class="input required">8. Confirm Email:</label> 
<input name="author_confirm_email" id="author_confirm_email" class="inputclass pageRequired email" equalTo:"#author_email" maxlength="254" title="Please confirm your email address" /> <br />

谢谢。

5 个答案:

答案 0 :(得分:5)

if($("#author_email").val() != $("#author_confirm_email").val())
{
alert("emails don't match, sucka");
}

答案 1 :(得分:0)

在模糊中,您可以检查它们是否具有相同的值。不要忘记申请toLowercase()。

您还可以使用验证插件http://docs.jquery.com/Plugins/validation

$(".email").blur(function(){
  //check to two here.
  if ($("#author_email").val() != $("#author_confirm_email").val())
  {
    //do something
  }
});

答案 2 :(得分:0)

function isValidEmailAddress(emailAddress) {
    var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
    return pattern.test(emailAddress);
}
function validation(){
var firstmail  = $("#author_email").val();
var secondmail  = $("#author_confirm_email").val();
if(firstmail.length != 0){
if(!isValidEmailAddress(firstmail)){
$("#error").html('please fill first mail valid');
}

}
else
$("#error").html('first mail is required');
if(secondmail.length != 0){
if(!isValidEmailAddress(secondmail)){
$("#error").html('please fill second mail valid');
}
}
else
$("#error").html('second mail required');

if(firstmail != secondmail){
$("#error").html('mail not match');
}
}

也许它可以帮助你解决难题。

答案 3 :(得分:0)

稍晚的贡献,但我正在处理我的验证表单,我这样做:

两个输入都有相同的类,你有'电子邮件',所以你可以用这种方式操作它们而不是特定的id,你可以在另一个地方更容易地重用代码片段:

if ($('.email').length == 2) {
  var first_email = $('.email').first();
  var second_email = $('.email').last();
  if (first_email.val() != '' && first_email.val() != second_email.val()) {
    console.log('emails does not match');
  }
  else{
    console.log('emails match');
  }
}

答案 4 :(得分:0)

我个人会向两个字段添加一个输入侦听器,然后像这样双向检查:

     $(document).ready(function () {

    $("#email_address_check").on('input', function(e){
        if ($("#email_address").val() != $("#email_address_check").val())
        {
            document.getElementById("email_match_warning").innerHTML = "<span style=\"color:red\" >Email Addresses Do Not Match</span>";
        }
        else
        {
            document.getElementById("email_match_warning").innerHTML = ""; 
        }
        });
        
    $("#email_address").on('input', function(e){
        if ($("#email_address").val() != $("#email_address_check").val())
        {
            document.getElementById("email_match_warning").innerHTML = "<span style=\"color:red\" >Email Addresses Do Not Match</span>";
        }
        else
        {
            document.getElementById("email_match_warning").innerHTML = ""; 
        }
        });
    });
    </script>