经过一个多小时的挣扎,现在看不到树上的树林了。
我有一个带有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);">
答案 0 :(得分:3)
为什么将返回值移至第二个函数会导致表单提交?
那是因为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;
}