我使用了以下代码:
<script type="text/javascript">
function validate() {
if ((document.changepass.newpassword.value != '') &&
(document.changepass.retypenewpassword.value ==
document.changepass.newpassword.value)){
document.changepass.retypenewpassword.blur();
document.changepass.submit();
}
}
</script>
<form name="changepass" method="POST" action="changepassword.jsp" onsubmit="return validate();">
<table align="center">
<tr>
<td>New Password:</td>
<td><input type="password" name="newpassword" size="20"
style="width: 145px" maxlength="10"></td>
</tr>
<tr>
<td>Retype New Password:</td>
<td><input type="password" name="retypenewpassword" size="20"
style="width: 144px" maxlength="10"></td>
</tr>
<tr>
<td><input type="submit" value="Change Password" name="operation" ></td>
<td><input type="reset"></td>
</tr>
</table>
</form>
但是当我给出不匹配的条目时,它也会发生变化。我的意思是验证函数没有被调用。 请帮忙
满怀希望 知更鸟
最佳答案
您的表单无论如何都会提交,因为您不会在出错时从验证函数返回 false。应该是:
function validate() {
var d = document.changepass;
if((d.newpassword.value != '') && (d.retypenewpassword.value == d.newpassword.value)) {
return true;
}
return false;
}
目前,您没有为 validate()
指定返回值,它被解释为始终返回 true,因此表单被提交。您不需要从您的函数中调用 submit()
,如果一切正常,只需返回 true。
关于javascript - 重新输入密码验证无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1998183/