gpt4 book ai didi

javascript - onsubmit 多个 javascript 函数

转载 作者:数据小太阳 更新时间:2023-10-29 03:58:48 25 4
gpt4 key购买 nike

有谁知道如何提交多个函数?我打算做的是: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,也应始终调用所有四个。

最佳答案

使用&代替&&

&& 使用短路评估,因此如果左侧操作数为假,则不会评估右侧操作数。

& 总是计算两个操作数。

onsubmit="return !!(validateName() & validatePhone()
& validateAddress() & validateEmail());"

编辑:抱歉,我忘记了 & 不会返回实际的 bool 值。将表达式括在括号中并使用双 ! 将其转换为(现在)所示。 (如果在 if 测试中使用结果,您无需担心,但事件处理程序的返回值应该是一个实际的 bool 值。)

P.S.:这是一个相当笨拙的演示,展示了所有四个函数都被调用但产生了您需要的总体 true 或 false 结果:http://jsfiddle.net/nnnnnn/svM4h/1/

关于javascript - onsubmit 多个 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11806253/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com