javascript - 如何在多次点击提交后只提交一次表单?

标签 javascript html ruby-on-rails forms

我遇到问题,当我尝试通过单击提交按钮提交表单时,在此期间发布请求需要一些时间,如果我再次单击提交按钮,它将再次发送所有参数和参数获取保存两次,三次......等等。

我不知道如何限制提交按钮,这样表单就不会被提交两次。 我想当我点击提交时,我必须禁用提交按钮,这样用户就不能再次点击它,这是正确的做法吗?

最佳答案

禁用该按钮是一种解决方案,但可能会给只需按回车键提交表单的键盘用户带来问题。在这种情况下,该按钮不会被禁用。万无一失的方法是像这样处理 onsubmit 事件:

(function () {
    var allowSubmit = true;
    frm.onsubmit = function () {
       if (allowSubmit)
           allowSubmit = false;
       else 
           return false;
    }
})();

(好吧,无论如何你都可以在启用 JS 的情况下获得成功)。您可以禁用该按钮,以向最终用户视觉确认该表单也只能提交一次。

关于javascript - 如何在多次点击提交后只提交一次表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2545641/

相关文章:

Javascript匹配子字符串并去除它之后的所有内容

javascript - 为客户取消 'One week trial' 的最佳惯例?

ruby-on-rails - 在 rspec 测试中创建一个对象变量但没有

javascript - 以创建者用户身份单击按钮时运行函数 - Google 电子表格

javascript - 如何在javascript中访问存储在项目外部的文件?

javascript - 当用户向下滚动足够然后返回时更改颜色

html - 编码一个灵活的 HTML 运动支架

ruby-on-rails - 为什么路由中带有%字符的路由会显示空白?

ruby-on-rails - Ruby on rails redirect_to 保存后不会重定向,只是停留在页面上(但确实保存)

javascript - 使用对象字面量定义构造函数原型(prototype)