2013-09-27 28 views
3

我有在視圖下面的代碼有問題:如何獲得最初檢查Bootstrap按鈕式複選框?

<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 checkboxes的示例實現嗎?

+0

生成的HTML看起來像什麼? – Undistraction

回答

2

事實證明,Bootstrap腳本不會在頁面加載時更新狀態。所以我解決了這個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"); 
    } 
}); 
+0

優秀。所以很傷心它不是引導程序的默認值......我會在第3行添加'$ button.find(「input [type ='checkbox'],input [type ='radio']」)',因爲它們也是關心的。 –

+0

這在我單擊記錄上的「編輯」時效果很好,但如果我獨立刷新編輯頁面,則不會顯示腳本運行。有任何想法嗎? –

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> 

是您:private模型屬性絕對boolean

+0

是的,':private'是布爾值。我想我只需要將該隱藏字段放在標籤外,或者至少更改順序,因爲已選中標籤內的第二個複選框的輸入狀態。 –

相關問題