【发布时间】:2012-08-02 02:58:18
【问题描述】:
有人知道如何提交多个函数吗?我打算做的是:onsubmit 检查所有这些函数是否都返回 true,如果它们都返回 true,那么我执行 action="checked.html"
<form id="myForm" name="myForm" action="checked.html" method="post"
onsubmit="return validateName() || validatePhone() || validateAddress() ||
validateEmail()">
然而,实际发生的是,计算机从左到右检查代码,下一个函数的结果将替换前一个函数的结果,以此类推,直到结束。因此,即使所有 3 个第一个函数都返回 false,只要最后一个函数为 true,计算机将执行 action="checked.html",这不是我打算做的......谁能帮我这个,我花了 4 个小时来修复它:S 谢谢!
另外,当我尝试执行<form onsubmit="return verify1() && verify2()"> 之类的操作时,它不起作用,它所做的只是检查 verify1(),而不是以下的... :(
澄清:在提交时,我想要调用四个验证函数。除非所有四个函数都返回 true,否则应阻止提交,但即使其中一些返回 false,也应始终调用所有四个函数。
【问题讨论】:
-
您可以直接编写函数而不是使用 OR 和 AND 运算符,如 onsubmit="return validateName();validatePhone();validateAddress();validateEmail();"
-
@Harry -1;这到底是怎么回事?只要 validateName 返回 true,表单就会提交
-
@Harry:我认为你做不到。它只会返回第一个函数结果。
-
布尔运算符 ||和 && 有一个短路机制。对于 ||,如果第一个运算符为真,则整个表达式必须为真。那么为什么要检查第二个运算符呢?对于&&,如果第一个运算符为假,则整个表达式必须为假。
标签: javascript forms function onsubmit