Javascript onsubmit连续功能

时间:2012-11-21 02:43:49

标签: javascript onsubmit

我有一个带有javascript的表单来验证必填字段,另一个用来强制php服务器消息显示在弹出窗口中。

此外,如果禁用了javascript,我在服务器中有一个php验证器。

如果javascript验证器没有消息,我希望弹出功能正常工作。

现在,当我将一个必填字段留空时,我从javascript验证器获取消息,并且还有一个带有php验证消息的弹出窗口:

form action="http://myserver.com/formmail.php" method="post" name="SampleForm"  onsubmit="return (validateForm() || createTarget(this.target)" target="formtarget")"

我不确定我是否清楚......有什么帮助吗?谢谢!

1 个答案:

答案 0 :(得分:0)

最好我可以解决,你的要求是在提交时你想先调用validateForm()函数,如果它返回false则停止处理并停止提交。否则,如果validateForm()返回true,您需要致电createTarget()并允许继续提交。您可以使用AND而不是OR条件来实现此目的,即使用&&代替||

onsubmit="return (validateForm() && createTarget(this.target));"

请注意,您错过了结束),尽管您根本不需要外括号:

onsubmit="return validateForm() && createTarget(this.target);"

您的代码无法与||一起使用的原因是,如果左侧操作数为false(或者为假),则评估右侧操作数并显示整个表达式的结果是右手操作数的值。如果左侧操作数为true(或真值),则根本不评估右侧操作数。因此,如果您的validateForm()返回false,因为存在验证错误,则仍会调用createTarget()函数,如果它返回的值不是false,则提交将继续。

(当然我假设validateForm()如果没有错误则返回true,如果有错误则返回false。)

有关详细信息,请阅读JavaScript's logical operators