在 Rails 4 中,如何禁用视图中的按钮并确保它不能被单击?

Posted

技术标签:

【中文标题】在 Rails 4 中,如何禁用视图中的按钮并确保它不能被单击?【英文标题】:In Rails 4, how do I disable a button in a view and also ensure it cannot be clicked? 【发布时间】:2021-12-11 05:16:35 【问题描述】:

我使用的是 Rails 4.2。在某些条件下,我想禁用一个按钮并使其在我的 ERB 中不可点击。我试过这个

    <%= link_to 'Submit Form', order_products_path, method: :post, data: confirm: "Are you sure?",
                class: 'btn btn-class1', disabled: submit_disable %>

虽然 UI 上的按钮显示为已禁用,但仍可单击(当我单击它时,会出现“您确定吗?”确认)。所以我尝试了这个

    <%= link_to_if !submit_disable, 'Submit Form', order_products_path, method: :post, data: confirm: "Are you sure?",
                class: 'btn btn-class1', disabled: submit_disable %>

但是现在按钮只显示为文本。禁用按钮并消除用户点击能力的正确方法是什么?

【问题讨论】:

【参考方案1】:

link_to_if 如果条件为假,将仅返回名称,但是您可以将块作为假情况传递,所以,我认为您可以这样做

<%= 
 link_to_if !submit_disable, 'Submit Form', 
   order_products_path, method: :post, data: confirm: "Are you sure?", 
   class: 'btn btn-class1' do
     # disabled view
     label_tag 'Submit Form', nil, class: 'btn btn-class1'
 end
%>

【讨论】:

以上是关于在 Rails 4 中,如何禁用视图中的按钮并确保它不能被单击?的主要内容,如果未能解决你的问题,请参考以下文章

Rails 4:使用内置 HTML 清理时禁用自动 CSS 清理

选择自定义选择器视图中的第一行时如何禁用按钮?

如何在android中的活动开始时禁用按钮的单击事件检查

提交后禁用Rails中的link_to按钮以防止重复提交

iOS禁用按标签栏按钮弹出到根视图

Rails:一个表单中的多个提交按钮