2016-06-11 75 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'); 
} 

這將是真正的回報語句之前和IF(errors.length> 0)之後。

+0

我也試過這個。這給了我相同的結果。我收到了'(erros.length == 0)'和'「的消息''不要使用符號... \ n」' – John

+0

對不起,我的答案有一個錯字,它是錯誤,而不是錯誤。你可以嘗試這種改變嗎? –

+0

我沒有收到以下代碼的任何消息: 'if(errors.length == 0){ errors [errors.length] =「正確輸入」; }' – John