我有一个用户用来注册的提交表单:
<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>
答案 0 :(得分:2)
错误。长度永远不会小于0.你必须使用相等(==)。这有效! : - )
<强>更新强>
if (errors.length == 0) {
alert('Correct input');
}
那将在return true语句之前和if(errors.length&gt; 0)之后。