Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Submit上调用多个Javascript函数_Javascript - Fatal编程技术网

在Submit上调用多个Javascript函数

在Submit上调用多个Javascript函数,javascript,Javascript,我正在尝试调用多个JavaScript函数。即使我的函数返回false,它也会提交。我收到了警报消息,但它还是提交了 这是我的表格 <form name="myform" id="myform" action="receipt.html" method="post" onSubmit="return allValidation();"> 您在allValidation中没有返回任何内容,因此它将继续执行下一个方法。试试这个 function allValidation() {

我正在尝试调用多个JavaScript函数。即使我的函数返回false,它也会提交。我收到了警报消息,但它还是提交了

这是我的表格

<form name="myform" id="myform" action="receipt.html" method="post" onSubmit="return allValidation();">

您在
allValidation
中没有返回任何内容,因此它将继续执行下一个方法。试试这个

function allValidation() {
    return validateForm() && selectCountry() && validateEmail();
}

这是因为无论什么值返回validateForm()selectCountry()和validateEmail()函数,函数都会返回true

按如下方式更改allValidation()函数:

function allValidation()
{
    return validateForm() && selectCountry() && validateEmail();
}

您可以使用多个函数,然后使用
它们的结果来获得最终验证。并在验证成功的所有函数中添加
return true
语句

function allValidation()
   {
      return (validateForm() && selectCountry() && validateEmail());
   }

您没有使用返回值。@SLaks我现在已经编辑了函数。类似的东西?在所有
validateForm()
selectCountry()
validateEmail()
方法中添加默认的
return true
值(作为最后一行)。现在,如果validateForm为true并绕过其他两个函数,则提交
return true
应该没有括号。我已经用我的建议修改了你的问题。希望这能解决你的问题。继续努力……太棒了!非常感谢。这绕过了selectCountry()和validateEmail()函数,并在validateForm()有效时提交。@dafyddgj,我不这么认为。。我在Chrome47、Firefox42和IE8上测试了这些代码,它们都能正常工作。Javascript逐个计算函数,从左侧开始,在第一个返回false(如果有)的函数上停止。在这种情况下,allValidation()返回false,实际上,其他函数都被绕过。如果所有函数都返回true,则allValidation()将返回true。因此,使用
returnvalidateform()&&selectCountry()&&validateEmail()
返回(validateForm()&&selectCountry()&&validateEmail())具有完全相同的效果。请避免仅使用代码回答。请加上解释。
function allValidation(){
  return validateForm() && selectCountry() && validateEmail();
}