这真让我困扰。我只是希望表单在函数返回false时不提交。这是脚本。
function checkPass(){
var pass1 = document.getElementById('pass');
var pass2 = document.getElementById('pass2');
var message = document.getElementById('confirmMessage');
var goodColor = "#224466";
var badColor = "#900000";
if(pass1.value == pass2.value){
pass2.style.backgroundColor = goodColor;
return true;
}else{
pass2.style.backgroundColor = badColor;
return false;
}
}
当我使用时,表单仍然汇总:
<form onsumbit="checkPass();">
</form>
当我用户
时<form>
<input type="submit" onclick="checkPass();">
</form>
没有运气。有什么想法吗?
答案 0 :(得分:3)
在表单的 onsubmit 事件中使用此功能:
onsubmit="return checkPass()"
或者这个提交按钮(输入标签):
onclick="return checkForm()"
答案 1 :(得分:2)
如果您使用的是xhtml,请确保'onsubmit'为小写。
<form onsubmit="return checkPass()" ... >
答案 2 :(得分:1)
正如M2X所说,你需要使用
<form onsubmit="return checkPass();">
原因是当你将事件处理程序作为一个属性分配时,内部实际发生的是创建一个新的匿名函数,包含在属性中的代码中,并且该函数需要返回将阻止的值或允许表格提交。
因此,您的原始onsubmit
属性将变为:
function() {
checkPass();
}
执行checkPass
函数但丢弃其返回值。通过在属性中包含return
,它将变为:
function() {
return checkPass();
}
将返回checkPass
函数返回给它的值,从而达到预期的效果。