我最后的机会是罗尔最后一个活着的开发人员

在互联网最黑暗的角落里,没有什么是有用的:

<%= link_to 'some-link', '#', data: { confirm:'Are You Sure?') %>;

它会产生这样一个结果:

<a data-confirm="Are you sure?" href="#">some link</a>

但没有确认对话框.

我try 了所有的方法-turbo_confirm,try 添加带有刺激类的控制器...但还是一无所获.

现在,我移除了涡轮轨道、刺激系统等--但仍然一无所获.

推荐答案

data-turbo-confirm将显示带有给定值的确认对话框.能 用于form个元素或links with 102个元素.

100

有效的例子

<%= link_to "GET turbo link", "/",
  data: {
    turbo_method: :get,
    turbo_confirm: "Sure?"
  }
%>

<%= link_to "POST turbo link", "/",
  data: {
    turbo_method: :post,
    turbo_confirm: "Sure?"
  }
%>

<%= button_to "Button", "/",
  data: { turbo_confirm: "Sure?" }
%>

<%= form_with url: "/",
  data: { turbo_confirm: "Sure?" } do |f| %>

  <%= f.submit "Submit" %>
<% end %>

不起作用

<%= link_to "GET link", "/",
  data: { turbo_confirm: "Sure?" }
%>

通过添加turbo_method: :get进行修复.

真的不管用

<%= link_to "UJS link", "/",
  data: { confirm: "Sure?" }
%>

但很容易修复:

// app/javascript/application.js

document.addEventListener("click", event => {
  const element = event.target.closest("[data-confirm]")

  if (element && !confirm(element.dataset.confirm)) {
    event.preventDefault()
  }
})

数据-禁用-带

这个稍微复杂一些,但它们都是相同的模式,侦听事件,判断数据属性,如果不是,就做些什么.

// app/javascript/application.js

// on form submit
// set `value` if `input`
// set `innerHTML` if `button`
document.addEventListener("turbo:submit-start", event => {
  const element = event.detail.formSubmission.submitter
  if (element.hasAttribute("数据-禁用-带")) {
    // element.disabled = true // this is done by turbo by default
    if (element instanceof HTMLInputElement) {
      element.value = element.dataset.disableWith
    } else {
      element.innerHTML = element.dataset.disableWith
    }
  }
})
<%= form_with url: "/" do |f| %>
  # <button>
  <%= f.button "Submit", data: { disable_with: "..." } %>
  # <input>
  <%= f.submit "Submit", data: { disable_with: "..." } %>
<% end %>

Ruby-on-rails相关问答推荐

Rails 7 应用程序 - 引用模型文件时出现未初始化常量错误

Rails 模型 - 以 ID 作为自定义列的自定义主键

'elseif' 还存在吗?

如何在 Rails 中注释掉 ERB?

如何在 Ruby on Rails 中创建一个锚点并重定向到这个特定的锚点

带有 Cucumber 和 rspec 的 BDD - 这什么时候是多余的?

使用 RVM 时如何安装 Ruby gem?

Rails 文章助手 - a 或 an

关闭 Firefox 中文本字段的自动完成功能

升级到 ruby​​ 1.9.2 后奇怪的无法要求配置/ bootstrap

设计自定义路由和登录页面

格式化日期对象以显示人类可读的日期

如何检测我的代码是否在 Rails 3 的控制台中运行?

Rails:进行不可逆转的迁移是不是很糟糕?

确认后如何进行设计重定向

counter_cache 实现的问题

禁用 JS/Ajax 请求时的 ActionController::InvalidAuthenticityToken

Ruby 根据属性在数组中查找并返回对象

Ruby 更新后:测试失败,assets资源 未声明为在生产中预编译

如何创建一个 ruby​​ Hello 世界?