-1

我有一个带有 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")"

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

4

1 回答 1

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()返回。)truefalse

有关更多信息,请阅读JavaScript 的逻辑运算符

于 2012-11-21T03:22:52.710 回答