我正在制作带有 javascript 验证的注册表单。
<form name="registration" method="post" onsubmit="return validate_registration()">
<input id="username" type="text" name="username" value="<?php echo @$_POST['username'];?>" onblur="checkUsername(this.value)">
<span id="e_username" style="display: none; color: #c00;"><?php echo _("Some error");?></span>
<input type="submit" name="register_frm_smbt" value="<?php echo _("Submit");?>">
</form>
Javascript:
<script type="text/javascript">
function checkUsername(login){
reg = /^[\w]{1}+[\w\.\d-_]{1,}$/i;
if (login.length < 3 || !login.match(reg)) {
document.getElementById("e_username").style.display = "inline";
return false;
}
else {
document.getElementById("e_username").style.display = "none";
return true;
}
}
function validate_registration(){
var username = document.getElementById("username").value;
alert(username); // works
if (checkUsername(username) ){
alert("OK!"); //never
return true;
}
else {
alert("NOT OK!"); //never
return false;
}
}
</script>
所以checkUsername(login)
在填写表格时可以正常工作“onblur”。但validate_registration()
没有。我收到带有用户名的第一个警报,但都没有“OK!” 或“不行!” 正在警告。这是为什么?