我在使用简单的密码验证时遇到了问题。
这些是验证所做的事情
即使小于或大于验证
,表单也会在两个密码匹配时提交请参阅我的代码:
function on_submit(dest) {
var objForm = document.LogonForm;
var strMissingInfo = "";
if (dest == 'logon') {
if (objForm.current.value != "") {
if (objForm.new1.value.length < 8 || objForm.new1.value.length > 15) {
strMissingInfo += "\n Password must be 8 to 15 characters long";
} else if (objForm.retype.value != objForm.new1.value) {
strMissingInfo += "\n Password mismatch!";
}
if (strMissingInfo != "") {
alert(strMissingInfo);
} else {
alert(strMissingInfo);
objForm.action.value = dest;
objForm.submit();
}
}
}
}
--- HTML部分
<input type="password" id="current" name="current"
onKeyPress="return isNumberKey(event)" style="width: 180px"
tabindex="1" required/>
<input type="password" id="new1" name="new1"
onKeyPress="return isNumberKey(event)" style="width: 180px"
tabindex="2" required />
<input type="password" id="retype" name="retype"
onKeyPress="return isNumberKey(event)" style="width: 180px"
tabindex="3" required />
<a href="javascript:;">
<input id="logonButton" class="submit"
type="submit" name="Submit" value="Confirm" tabindex="4"
onclick="on_submit('logon')" />
</a>
答案 0 :(得分:0)
由于您没有提及发生的警报,我的猜测是您使用表单内的按钮调用此函数。除非您按照此问题中的说明在按钮上设置类型,否则无论onclick功能如何,都会自动提交表单:How to prevent buttons from submitting forms
<input id="logonButton" class="submit"
type="button" name="Submit" value="Confirm" tabindex="3"
onclick="on_submit('logon')" />
答案 1 :(得分:0)
如果您希望表单在提交时失败,请在验证失败时返回false。
if (strMissingInfo != "") {
alert(strMissingInfo);
return false;
}
答案 2 :(得分:0)
您需要从函数中返回true
(提交表单)或false
(停止提交),并使用onclick="return on_submit('logon');"
- 或者甚至更好地删除它并将onsubmit="return on_submit('logon');"
放在表单上。