2016-08-16 147 views
3

请帮助,如何验证此多个密码并确认密码是否相等?如果第一个judge_password []和juge_conPassword []不相等,则返回false,然后再次迭代到下一个。Javascript:验证多个密码并确认密码字段

<input type="password" name="judge_password[]" class="judge_password"> 
<input type="password" name="judge_conPassword[]" class="judge_conPassword"> 

<input type="password" name="judge_password[]" class="judge_password"> 
<input type="password" name="judge_conPassword[]" class="judge_conPassword"> 

<input type="password" name="judge_password[]" class="judge_password"> 
<input type="password" name="judge_conPassword[]" class="judge_conPassword"> 
<input type="button" id="click"> 

我的代码

var judge_conPassword = []; 

$('.judge_conPassword').each(function(){ 
    var theVal = $(this).val(); 
    if($.trim($(this).val())==''){ 
     pralse = false; 
     $('.trigger_danger_alert_changable').show().delay(5000).fadeOut(); 
     $('#palitan_ng_text').html('Confirm password required'); 
     return false; 
    } 
    judge_conPassword.push(theVal); 
}); 



var judge_password = []; 

$('.judge_password').each(function(){ 
    var theVal = $(this).val(); 
    if($.trim($(this).val())==''){ 
     pralse = false; 
     $('.trigger_danger_alert_changable').show().delay(5000).fadeOut(); 
     $('#palitan_ng_text').html('Password cannot be empty'); 
     return false; 
    } 
    judge_password.push(theVal); 
}); 

if(!pralse){ 
    return false; 
} 

function checkPass(judge_password, judge_conPassword){ 
    if(judge_password.length !== judge_conPassword.length){ 
     alert('password missing') 
    }else{ 
     var j_count = judge_password.length; 
     for(var i=0; i<j_count; i++){ 
      if(judge_password[i] !== judge_conPassword[i]){ 
       alert('Password not same'); 
       return false; 
      } 
     } 
       return true; 
    } 

} 
checkPass(); 
+0

您可以将这些字段的值存储在两个单独的阵列和比较这些值 –

+0

有什么问题了吗?你的代码看起来很好。 –

+0

@ HiI'mFrogatto他缺少.value,而比较 –

回答

0

你是不是比较值 试试这个

if(judge_password[i].value !== judge_conPassword[i].value) 
2

编辑:请注意,我之前我看到添加JS编辑张贴了这​​个答案到了这个问题,所以我刚刚关闭OP的HTML。

这是第一个想到的方法。我添加了一个mismatch类强调的是有问题的领域:

$("#click").click(function() { 
 
    var passwords = $("input.judge_password").removeClass("mismatch"), 
 
     confirms = $("input.judge_conPassword").removeClass("mismatch"), 
 
     valid = true; 
 
    
 
    passwords.each(function(i) { 
 
    if (this.value != confirms[i].value) { 
 
     valid = false; 
 
     $(this).add(confirms[i]).addClass("mismatch"); 
 
    } 
 
    }); 
 
    
 
    if (!valid) { 
 
    alert("Passwords don't match."); 
 
    } else { 
 
    // submit or whatever here 
 
    alert("Passwords match."); 
 
    } 
 
});
.mismatch { 
 
    background-color: red; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<input type="password" name="judge_password[]" class="judge_password"> 
 
<input type="password" name="judge_conPassword[]" class="judge_conPassword"> 
 
<br><br> 
 
<input type="password" name="judge_password[]" class="judge_password"> 
 
<input type="password" name="judge_conPassword[]" class="judge_conPassword"> 
 
<br><br> 
 
<input type="password" name="judge_password[]" class="judge_password"> 
 
<input type="password" name="judge_conPassword[]" class="judge_conPassword"> 
 
<br><br> 
 
<input type="button" id="click" value="Test">