3

我对视图中的以下代码有疑问:

<div class="btn-group" data-toggle="buttons">
  <%= f.label :private, class: "btn btn-default" do %>
    <%= f.check_box :private %> Private
  <% end %>
</div>

从技术上讲,它可以工作,但是当该private字段最初为真(即选中)时,按钮看起来好像未选中。也许是因为 check_box 助手生成了两个输入,其中一个是隐藏的。

有人可以在 Rails 视图中展示Bootstrap 复选框的示例实现吗?

4

2 回答 2

2

事实证明,引导脚本只是不会在页面加载时更新状态。所以我用这个 JavaScript 代码片段解决了这个问题:

$("[data-toggle='buttons'] .btn").each(function(i, el) {
  var $button = $(el);
  var checked = $button.find("input[type='checkbox']").prop("checked");
  if (checked) {
    $button.addClass("active");
  } else {
    $button.removeClass("active");
  }
});
于 2013-09-27T10:09:58.770 回答
0

这是我使用简单表单生成的一个项目中的一个工作复选框:

<%= f.input :cost, label: "Cost to access resource" %>

生成:

<div class="form-group boolean optional archive_resource_cost">
   <input name="archive_resource[cost]" type="hidden" value="0" />
   <label class="boolean optional checkbox" for="archive_resource_cost">
   <input checked="checked" class="boolean optional" id="archive_resource_cost" name="archive_resource[cost]" type="checkbox" value="1" />
      Cost to access resource
   </label>
</div>

你的:privatemodel属性确定boolean吗?

于 2013-09-27T07:52:29.197 回答