已经为此苦苦挣扎了一个多小时,现在看不到树林了..
我有一个带有 onSubmit 的表单,它调用验证函数,但表单始终在提交并且页面刷新。
如果验证函数的结尾看起来像这样,那么工作正常
function verifycheck(){
.... checking scripts that work ....
if (!pass){
alert("Un ou plus des l'elements requis ne sont pas remplier. SVP remplier, puis envoyer encore!")
return false
}else{
return false
}
}
表单从未像我期望的那样提交......
但是,如果我随后尝试将成功的验证推送到另一个函数..
function verifycheck(){
.... checking scripts that work ....
if (!pass){
alert("Un ou plus des l'elements requis ne sont pas remplier. SVP remplier, puis envoyer encore!")
return false
}else{
sendformdata(form);
}
}
function sendformdata(form){
return false
}
表单将提交并刷新页面。
为什么将返回移动到第二个函数会导致表单提交?
HTML 看起来像
<form id="signupform" action="" method="post" onSubmit="return verifycheck(this);">
最佳答案
为什么将返回移动到第二个函数会导致表单提交?
这是因为 verifyCheck
函数现在不再返回任何内容。返回值不会自动“冒泡”。要阻止提交,您必须通过传递 sendformdata
的返回值来从 verifyCheck 返回 false。为此,请将调用该函数的行更改为:
return sendformdata(form);
因此总代码变为:
function verifycheck() {
.... checking scripts that work ....
if (!pass) {
alert("Un ou plus des l'elements requis ne sont pas remplier. SVP remplier, puis envoyer encore!")
return false;
} else {
return sendformdata(form); // Change in this line.
}
}
function sendformdata(form) {
return false;
}
关于Javascript 表单阻止在调用第二个函数时不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32019331/