我试图找出如何在条件下禁用复选框?
这是我的一段代码:
<%= f.collection_check_boxes(:company_ids, @user_companies, :id, :name) do |b| %>
<div class="col-sm-1">
<%= b.check_box %>
</div>
<%= b.label %><br><br>
<% end %>
如果@user = current_user
在here中,我不知道如何实现这一目标。我认为有一些方法,但到目前为止没有运气找到一个。我天真的想法也许可以在某种程度上说明条件。 collection_check_boxes docs显示了如何使用check_box_tag执行此操作。
我很高兴任何提示如何解决这个问题。谢谢!
答案 0 :(得分:2)
如果您只想使用HTML禁用属性,可以执行以下操作:
<%= f.collection_check_boxes(:company_ids, @user_companies, :id, :name) do |b| %>
<div class="col-sm-1">
<%= b.check_box disabled: @user == current_user %>
</div>
<%= b.label %><br><br>
<% end %>
答案 1 :(得分:0)
使用bootstrap disabled类或使用as
创建一个.disabled{
pointer-events: none;
cursor: not-allowed;
}
现在您可以使用此类来禁用该复选框。
<%= f.collection_check_boxes(:company_ids, @user_companies, :id, :name) do |b| %>
<div class="col-sm-1">
<%= b.check_box( class: (@user == current_user) ? "disabled" : "" ) %>
</div>
<%= b.label %><br><br>
<% end %>
您还可以使用display属性根据元素类隐藏元素
希望这有帮助
答案 2 :(得分:0)
您可以使用它来禁用该复选框,并同时显示div禁用。
<%= f.collection_check_boxes(:company_ids, @user_companies, :id, :name) do |b|%>
<div class="col-sm-1 <%=(@user == current_user) ? "disabled" : ""%>">
<%= b.check_box( onclick:"return false;")) %>
</div>
<%= b.label %><br><br>
<% end %>