Javascript 表单阻止在调用第二个函数时不起作用

标签 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);">

最佳答案

为什么将返回移动到第二个函数会导致表单提交?

这是因为 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/

相关文章:

javascript - 在 JavaScript 中使用 Liquid 变量

javascript - 具有自动高度的CSS切换过渡动画不起作用

html - CSS 动画 : squares loader

javascript - 如何使用 jQuery 显示文本框或表单已被编辑?

c# - C# 如何调整表单大小

javascript - 将点击功能绑定(bind)到动态div

javascript - Jquery 响应 find() 失败?

javascript - 将 HTML 代码转换为 Javascript 变量(字符串)

javascript - 将图像放置在元素上以表示它被选择

javascript - 使用JQuery清除表单的所有内容