2016-06-11 3 views
1

У меня есть представить форму, которую пользователи используют для регистрации:JS отправить сообщение на правильный вход

<form method="post" action="<?php echo $_SERVER["PHP_SELF"]; ?>" name="form" onSubmit="return validate(this);"> 
<div class="form-group"> 
    <input type="text" id="name" name="name" class="inputs" /><br /> 
    <input type="text" id="email" name="email" class="inputs" /><br /> 
    <input type="password" id="password" name="password" class="inputs" /> 
</div> 
<input type="submit" class="btn1" name="register" value="Register" /> 
</form> 

код JS проверяет, если данные введены правильно. Если пользователь вводит неверную дату, код JS показывает сообщение. Теперь я хочу показать сообщение, когда данные введены правильно. Я попытался добавить строку вроде if (errors.length < 0), но это не сработало. Код JS отправляет мне сообщение для «правильного ввода» и сообщение «Не использовать символы ... \ n».

Как это сделать?

Вот мой JS код:

<script type="text/javascript"> 
var ck_name = /[A-Za-z0-9. ]{3,25}$/; 
var ck_email = /^[a-zA-Z0-9._-][email protected][a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/; 
var ck_password = /^[[email protected]#$%^&*()_]{6,20}$/; 

function validate(form) 
{ 
var name = form.name.value; 
var email = form.email.value; 
var password = form.password.value; 

var errors = []; 

if (!ck_name.test(name)) 
    { 
    errors[errors.length] = "Name error! ."; 
    } 

if (!ck_email.test(email)) 
    { 
    errors[errors.length] = "Email error! ."; 
    } 

if (!ck_password.test(password)) 
    { 
    errors[errors.length] = "Password error!"; 
    } 

if (errors.length > 0) 
    { 
    reportErrors(errors); 
    return false; 
    } 

return true; 
} 

function reportErrors(errors) 
{ 
var msg = "Dont use symbols...\n"; 
for (var i = 0; i<errors.length; i++) { 
var numError = i + 1; 
msg += "\n" + numError + ". " + errors[i]; 
} 
alert(msg); 
} 
</script> 

ответ

2

Errors.length никогда не будет незначительным 0. Вы должны использовать равны (==). Это работает! :-)

UPDATE

if (errors.length == 0) { 
alert('Correct input'); 
} 

Это было бы до возвращения истинного утверждения и после, если (errors.length> 0).

+0

Я также пробовал это. Это дает мне тот же результат. Я получаю сообщение для '(erros.length == 0)' и '" Dont использовать символы ... \ n "' – John

+0

Извините, у меня есть опечатка в моем ответе, это ошибки, а не erros. Можете ли вы попробовать с этим изменением? –

+0

Я не получаю сообщение со следующим кодом: 'if (errors.length == 0) { errors [errors.length] =" Правильный ввод "; } ' – John

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