我有一个带有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")"
我不确定我是否清楚......有什么帮助吗?谢谢!
答案 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。