2016-01-11 4 views
-2

Я новичок в javascript. У меня есть форма регистрации, для которой требуется пароль и подтверждение пароля. До сих пор я могу правильно проверить, совпадают ли пароли. Тем не менее, я попытался вставить минимальную длину в пароль и не работает. Что не так с моим кодом?Javascript длина пароля

<HTML> 
    <div class="form-group"> 
           <label class="sr-only" for="form-password">Password</label> 
           <input type="password" name="formpassword" required placeholder="Password" class="formpassword form-control" id="form-password" nickname='Password'> 
           </div> 

           <div class="form-group"> 
           <label class="sr-only" for="form-password-confirm">Password Confirm</label> 
           <input type="password" name="formpasswordconfirm" required placeholder="Password Confirm" class="formpassword form-control" id="form-password-confirm" nickname='Password Confirm'> 
           <div id='passwordmsg' class="id-msg"></div> 
           </div> 
    <HTML> 
    <JS> 
    $('#form-password').on('change', function(){ 
    pass = $('#form-password').val(); 
    if(pass < 6){ 
     $('#passwordmsg').html('Password must be at least 6 characters'); 
    }else { 
     $('#passwordmsg').html(""); 

}); 


$('#form-password-confirm').on('change', function() { 
    pass = $('#form-password').val(); 
    pass_confirm = $('#form-password-confirm').val(); 
    if(pass != pass_confirm){ 
     $('#passwordmsg').html("Password mismatched"); 
    }else{ 
     $('#passwordmsg').html(""); 
    } 
    set_btn_enable(); 
}); 
    </JS> 

ответ

1

Вашей проблемой эта линия:

if(pass < 6){ 

Вы хотите иметь:

 if(pass.length < 6) 
0

.val() возвращает значение в указанном поле. Это будет hunter42 или что бы пользователь не вводил для своего пароля, а это значит, что вы делаете 'hunter42' < 6, что не имеет смысла.

[..snip...].val().length; 
       ^^^^^^^ 

, чтобы получить ДЛИНА возвращаемого значения поля.

1

Вы спрашиваете, если строка меньше, чем 6, следует использовать свойство длины строки, так что вместо

if(pass < 6) ... 

должен быть

if(pass.length < 6) ... 
0

Вы должны контролировать длину пароль с:

... 
pass = $('#form-password').val(); 
if(pass.length < 6){ 
... 
0

Вы сделали одну маленькую ошибку.

В случае условий Проверьте длину значения вместо того, чтобы указывать только строковое значение.

$('#form-password').on('change', function(){ 
pass = $('#form-password').val(); 
if(pass.length < 6){ 
    $('#passwordmsg').html('Password must be at least 6 characters'); 
}else { 
    $('#passwordmsg').html(""); 

}); 

Используйте свойство length, чтобы получить количество символов (длина строки). For more refer this link.

Смежные вопросы