jquery - Rails 和数据禁用与 Safari 不兼容

标签 jquery ruby-on-rails safari ujs

<%= f.button :button, 'Move', class: "btn btn-warning", data: { disable_with: "<i class='fa fa-spinner fa-spin'></i> Moving…"} %>

这在 Chrome 中工作正常,但在 Safari 中失败。这适用于链接,但不适用于按钮或提交。似乎有一些关于此的帖子,但没有明确的答案。我的网页控制台没有抛出任何 JS 错误等。

该按钮实际上已禁用(您可以在单击该按钮后看到“请勿输入”图标悬停片刻),但文本不会更改。

我可能可以忍受这个问题,但解决它会很好。

最佳答案

这是由 Safari 的正常行为引起的,它在提交表单后停止更新 DOM,这就是为什么控制台中没有显示错误!

(有一个例子here来证明这一点)

我发现可以解决此问题的唯一方法是通过 js 脚本延迟表单提交,有一个脚本是作为此问题的解决方法编写的 here

相关主题:https://github.com/rails/jquery-ujs/issues/306#issuecomment-167118087

关于jquery - Rails 和数据禁用与 Safari 不兼容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35733549/

相关文章:

JavaScript 执行超时

jquery - 隐藏图片库的文本 - SEO 影响

javascript - 关键事件不适用于多个 ckeditor

javascript - 将 json 文件读取为 javascript 对象

ruby-on-rails - 如何避免刷新 gem 列表

HTML 导入到 HTML 问题

javascript - 除非打开 Web 检查器,否则 Safari 上的 HTML5 Progress 元素不会更改值

Jquery - 在悬停时选择多个 div

ruby-on-rails - ActiveRecord#存在吗?或从 ActiveRecord::RecordNotFound 中救援

ruby-on-rails - Ruby - 嵌套 IF 语句语法