2011-02-17 4 views
2

암호 일치 코드가 있습니다. 암호 확인 필드에 입력하는 동안 암호 필드가있는 모든 문자를 확인하려고합니다. 그냥 $("#confirmpassword").keydown()은 암호와 일치합니다.

+0

코드에서 일부 오류가 있습니다 :

지금, 당신의 코드는 다음과 같이해야 하는가? 기대하는 결과를 얻지 못하고 있습니까? 너 뭐야? –

+0

[JSFiddle] (http://jsfiddle.net)에 게시하여 질문에 연결하십시오. – VoronoiPotato

답변

0

은 매우 모호 보인다. 코드에 오류가 있습니까? 기대하는 결과를 얻지 못하고 있습니까? 너 뭐야? 제공 비밀번호 필드는 정말 id 값 (이름이 아닌) "비밀번호"와 "confirmpassword"가, 그들이 input 요소 또는 유사한, 다음 근본적으로 제외하고, 작업을해야하는거야 제공 : 당신은 false

  1. 반환하고 일치하지 않을 때 true을 반환 할 때 (적어도 인용 부호는 제외). 따라서 이것이 호출하는 함수에 있고 반환 값을 확인하는 중이라면 어느 것이 든 잘못된 값을 보게 될 것입니다.
  2. 일치하지 않는 경우 error-Yes-msg 클래스를 추가하고 있지만 일치하는 경우 제거하지 않습니다 (대신 error-msg을 삭제).
  3. 일치하면 Val.errorsVal.showerrors이 삭제되지 않습니다.

들을 해결하고 정리하는 약간의 일을 :

var npass = $('#password'); 
var rpass = $('#confirmpassword'); 
var match = npass.val() == rpass.val(); 
Val.errors = Val.showerrors = !match; 

if(match) { 
    $("#confirmpasswordError").removeClass('error-Yes-msg').html(''); 
    $("#confirmpassword").removeClass('error-input'); 
} else { 
    $("#confirmpasswordError") 
     .html("must match") 
     .addClass('error-Yes-msg').show(); 
    $("#confirmpassword").addClass('error-input'); 
} 
return match; 
0

귀하의 질문에이 코드를 결합해야처럼

var npass = $('#password'); 
    var rpass = $('#confirmpassword'); 
    if(npass.val() != rpass.val()) { 
     Val.errors = true; 
     Val.showerrors = true; 
     $("#confirmpasswordError").html("must match"); 
     $("#confirmpasswordError").addClass('error-Yes-msg').show(); 
     $("#confirmpassword").addClass('error-input'); 
     return false; 
    } else { 
     $("#confirmpasswordError").removeClass('error-msg').html(''); 
     $("#confirmpassword").removeClass('error-input'); 
    } 
2

당신은 그것을 가지고있다. 상자의 keyup/keydown 이벤트에 바인딩하면됩니다.

라이브 데모 :http://jsfiddle.net/FPNBe/2/

$('#password, #confirmpassword').keyup(function() { checkPass(); }); 


function checkPass(){ 
    var rpass = $('#confirmpassword').val(); 
    var npass = $('#password').val(); 
    if(npass!= rpass) { 
     //Val.errors = true; 
     //Val.showerrors = true; 
     $("#confirmpasswordError").html("must match"); 
     //$("#confirmpasswordError").addClass('error-Yes-msg').show(); 
     //$("#confirmpassword").addClass('error-input'); 
     return false; 
    } else { 
     $("#confirmpasswordError").html("match!"); 
     //$("#confirmpasswordError").removeClass('error-msg').html(''); 
     //$("#confirmpassword").removeClass('error-input'); 
    } 
} 
0

작동 할 .keyup()/.keydown()처럼 보이지만, 그것 좀 까다로운 가끔 것이다. 따라서 Zurb의 this plugin을 사용해보세요. 그것은 매력처럼 작동합니다.

var npass = $('#password'); 
var rpass = $('#confirmpassword'); 

rpass.bind('textchange', function (event, previousText) { 
    if(npass.val() != rpass.val()) { 
     Val.errors = true; 
     Val.showerrors = true; 
     $("#confirmpasswordError").html("must match"); 
     $("#confirmpasswordError").addClass('error-Yes-msg').show(); 
     $("#confirmpassword").addClass('error-input'); 
     return false; 
    } else { 
     $("#confirmpasswordError").removeClass('error-msg').html(''); 
     $("#confirmpassword").removeClass('error-input'); 
    } 
}); 
관련 문제