通过单击按钮或表单提交禁用注册按钮,这两种方式都会阻止表单提交
Disabling the register button with on button click or on form submit , both ways stop the form from being submitted
我一直在研究这个问题,这让我发疯了!
所以我有一个注册 POST 表单,提交时,它会重定向到同一页面,尽管我有以下内容:
if (isset($_POST['submit']))
{
//include validation and executing code... (another page)
}
现在代码运行良好,一切都很好,但我有一个问题。
当用户连续单击两次时,他会收到一条消息,表明具有相同电子邮件的用户已经注册(第一次单击已注册他并将信息插入数据库)
现在我尝试在按钮标签中禁用带有:Onclick="this.RegisterBtn.disabled=1;"
按钮的按钮我还尝试在表单标签中使用:onSubmit="this.RegisterBtn.disabled=1;"
。
两者都阻止表格提交,不知道为什么。我也试过这个:
onClick="this.RegisterBtn.disabled=1; this.form1.submit();"
现在我想出了一个假设,当按钮被禁用时,"isset"函数将返回 false,如果这里有任何有经验的人可以确认或帮助我解决这个问题,我将不胜感激,我只是 php 和所有这些:)的新手,
提前非常感谢
编辑:表单操作为空(重定向到同一页面),代码包括位于表单上方。
编辑:当我禁用按钮时,isset($_POST['submit'])总是返回false。
解决方案:好的,我确实解决了它,以防有人遇到同样的问题,这是我如何解决的:
首先,当你禁用按钮时,isset($_POST['按钮名称'])将始终返回false。 所以我做了以下工作:
而不是这个条件,我使用了:if (!empty($_POST)) .....包含代码
我使用了onsubmit(在表单标签中).this.button1.disabled=1;,现在一切正常:-),并且表单无法:D提交两次。
试试
<input type="submit" name="submit" value="Submit" onclick="this.disabled = true;" />
忘记弄
乱表单。 在服务器端使用以下简单检查:
- 如果发生第二次注册完全相同电子邮件地址的请求,请忽略它。
- 如果出现不同的电子邮件地址,请更新它。
- 如果以前没有,请添加它。
相关文章:
- JavaScript表单提交没有't fire asp服务器端点击功能的提交按钮
- 如何将javascript仅应用于1个表单中的2个表单提交按钮中的1个
- 在表单提交按钮的点击事件中调用函数时发生引用错误
- 选择文件(表单提交)后无法单击“取消”按钮
- 表单提交,无需单击提交按钮
- 在我的Javascript和HTML之间的表单提交按钮链接中遇到问题
- 当我有多个可能的提交按钮时,如何在ENTER上进行表单提交
- jQuery验证插件停止表单提交,提交按钮获胜'不起作用
- Jquery Ajax表单提交:多个表单-相同的按钮id's
- 单击表单提交按钮时调用经典ASP函数
- 在不使用提交按钮重新加载的情况下将表单提交到PHP页面
- 使用js表单验证器禁用html表单提交按钮
- 如何为表单提交添加选择器,仅当特定按钮类型导致表单提交时
- 如何禁用除提交按钮以外的所有字段的表单提交
- 当我以带有编辑和删除按钮的表单提交时,显示所有值
- 联系人表单-提交按钮不起作用
- 重置按钮在表单提交之前有效,但在提交表单后不起作用
- 如果电子邮件输入处于焦点上,则阻止输入按钮表单提交 (jquery)
- Jquery History/Hashchange Event-返回按钮-表单提交时
- 停止不必要的按钮表单提交html js