Javascript表单阻止无法调用第二个函数

时间:2015-08-14 22:09:00

标签: javascript html forms

经过一个多小时的挣扎,现在看不到树上的树林了。

我有一个带有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);">

1 个答案:

答案 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;
}