我有一个通过ajax 进行客户端js 验证的表单。 它是一个简单的发送电子邮件(联系)表单,包含 3 个字段:姓名、电子邮件和消息。如果您尝试在没有正确验证的情况下单击“提交”,错误消息 div 将变得可见。这 3 个输入中的每一个都通过 onblur 调用 js 函数。如果我尝试输入正确的输入然后单击提交一次,它不起作用。点击第二次就可以了。
原因是我需要从该字段中移开焦点,以便 onblur 验证函数处理然后提交。这看起来应该是一个常见问题。提交调用一个 php 脚本,该脚本进行 ajax 调用来验证 3 个字段,如果正确,则提交电子邮件,同时显示“成功”消息。
知道我应该如何停止这个双击提交按钮吗?
我没有提供代码,因为我认为这会使代码太长,但是为了帮助..如果不好,这 3 个字段返回 false,如果好,则返回 true,然后 php 脚本仅检查其中 2 个字段是否为空,并且电子邮件字段如果通过正则表达式格式正确。如果是这样,则使用邮件功能,然后在 div 中打印“成功”。
最佳答案
我认为您别无选择,只能(当单击提交时)标记单击了提交,然后在验证器回调中,如果所有内容都有效,请检查标记(如果已设置),然后提交表单。
document.formname.submit();
关于php - OnBlur 导致提交按钮被单击两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18008487/