我有一个Rails Desive表单,它有javascript验证.当用户按下submit时,验证工作开始,用户将重新关注他们需要的表单.

但是,rails使用data disable with在单击按钮后禁用该按钮,因此在验证之后,用户不能再单击submit.我正在try 设置某种侦听器来判断按钮何时被禁用,等待一段时间以防止双击,然后重新启用按钮.

我try 过多次代码迭代,最新try 是:

      $(document.on("ajax:success", "new_supplier", function() {
      var button;

      button = $(this).find('.btn-sign-up');
      setTimeout((function() { return button.disabled=false; }),1);


      });

但没有成功,之前我只是try 在按钮上添加一个侦听器:

      var button = document.getElementById('btn-sign-up');
      button.addEventListener("click", enableButton);

      function enableButton() {
          if (button.disabled)
          {
              window.setTimeout(enable(), 2000);
          }
      }


      function enable() {
          button.disabled=false;
      }

但这失败了,因为它在禁用按钮的功能(隐藏在rails ether中)之前运行,因此无法工作.

我的提交按钮很简单:

    <%= f.submit "Create my account", class: 'btn-sign-up', id: 'btn-sign-up' %>

有人能帮我吗?我想如果我能为这个页面禁用jQuery_ujs,它会起作用,但我不确定我是否能做到.

推荐答案

我很简单地解决了这个问题.我刚进go ,用下面的代码从按钮中删除了数据禁用:

    $('#my-button').removeAttr('data-disable-with');

然后在表单准备好提交时重新建立属性,以防止双击创建重复项.

Ruby-on-rails相关问答推荐

无法在 Rails 中使用 wkhtmltopdf 写入临时文件

使用拆分成多个部分的种子文件进行Rails数据种植

从 rails 5 迁移到 rails 6

Gem::Ext::BuildError:ERROR:无法在macOS Monterey上构建Gem本机扩展

Rails Scope 返回 all 而不是 nil

如何在 Rails 中使用 instance_eval 子句删除验证?

如何使用 capistrano deploy 定位特定的提交 SHA

在 Epoch 中将 Ruby 时间戳转换为秒数并返回

如何在 routes.rb 中使用 301 或 302 进行重定向

使用回形针调整图像大小

URL中的Rails点而不是斜杠

在 Rails 中创建随机 DateTime 的最佳方法

Ruby on Rails:调试 rake 任务

遇到在早期版本的 Rails 中使用 attr_accessible 的情况时,Rails 4 中的禁止属性错误

如何使用 Rspec 判断 ActiveJob 中排队的内容

在范围内传递参数

在 Ruby on Rails 中的控制器中获取 URL 的锚部分

默认情况下 haml

如何检测rails是否在根url?

无法加载此类文件 -- openssl (LoadError)