기존의 유효성 검사 설정에 비밀번호 강도 기능을 추가했는데 가장 좋은 방법이 무엇인지 잘 모르겠다. 내 오류 표시는 다음과 같습니다.Jquery validate - 생성 된 라벨 제거
highlight: function(label) {
$(label).closest('.form-element').addClass('error').closest('.form-element').removeClass('success');
$('#result').html('');/*removes any strength messages on failed validation*/
},
success: function(label) {
label
.text('OK!').addClass('valid')
.closest('.form-element').addClass('success');
},
id "result"는 암호 강도 메시지입니다. 따라서 유효성 검사 오류 (범위 길이, 필수)가 트리거되면 암호의 강도와 관련된 메시지가 숨겨집니다.
관련 부분 암호 강도 검사
은 이것이다 : 나는 유효성 검사 오류 중 하나가 표시되는 경우, 이러한 오류 중 하나가 표시되지 않습니다되는 일이 싶은 무엇if (strength < 2){
$('#result').removeClass();
$('#result').addClass('passwordWeak');
return '(Password is weak)'
} else if (strength == 2) {
$('#result').removeClass();
$('#result').addClass('passwordGood');
return '(Password is good)'
} else {
$('#result').removeClass();
$('#result').addClass('passwordStrong');
return '(Password is strong)'
}
};
. 그들은 내가 그것을 트리거하는거야 3 문자 (쇼 "비밀 번호가 약한"), 다음 필드에 탭 (6 최소 길이에 대한 유효성 오류가 발생하고 "비밀 번호가 약한"숨 깁니다) 입력 한 다음 다시 더 많은 문자를 암호로 입력 나는 여전히 유효성 검사 오류 메시지가 있지만 문자 4를 입력하자마자 "암호가 약합니다."라는 메시지가 나타납니다. 현재 유효성 검사 오류가 표시되지 않는 경우 표시 할 등급은 단 하나입니다.
검증을 위해 생성 된 오류 레이블은 다음과 같습니다
<label class="error" for="thispassword" generated="true">Password must be between 6 and 50 characters.</label>
당신이 hasClass을 사용할 수 있습니다 : 실제 입력 필드에 오류 클래스를 제거 (유효성 검사에 의해 생성) 생성 된 오류 라벨과 기타를 숨기기 위해 한 - 암호 필드에 내의 keyup()에서 나는 두 줄을 추가()를 사용하여 결정합니다. ** if (! $ (label) .closest ('. form-element')와 같은 것) hasClass ('error') && strength <2) ** 이는 요소에 포함되지 않아야하는 if 블록을 실행하는 것을 의미합니다. 클래스 – Nirus
유효성 검사 오류가 발생하기 전에 'error'클래스의 레이블이 없기 때문에 "암호가 정의되지 않았습니다."라는 메시지가 나타나 초기 암호 강도 테스트가 실패합니다. – Steve
당신의 코드와 관련된 jsfiddle을 게시 할 수 있습니까? – Nirus