JS在正确的输入上发送消息

时间:2016-06-11 00:54:08

标签: javascript

我有一个用户用来注册的提交表单:

<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._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
 var ck_password =  /^[A-Za-z0-9!@#$%^&*()_]{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>

1 个答案:

答案 0 :(得分:2)

错误。长度永远不会小于0.你必须使用相等(==)。这有效! : - )

<强>更新

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

那将在return true语句之前和if(errors.length&gt; 0)之后。