2016-10-21 155 views
0

我正在使用帶有bootstrap多選功能的rails select_tag。我可以顯示選項。但如何在頁面加載時使用jquery選擇選項。從多選下拉菜單中選擇選項

選擇標記代碼 <%= select_tag 'test', options_from_collection_for_select(@test, "id", "name"), :class => "form-control", :multiple => "multiple" %>

$('#test').multiselect({ 
    includeSelectAllOption: true, 
    enableFiltering:true   
}); 

當我使用

$("#test").val(["some_value_of_option", "some_value_of_option"]).prop("selected", true); 

上面的代碼無法正常工作時選擇的選項。 預先感謝幫助..

+0

它是如何不工作? –

回答

0

使用find和屬性選擇器選擇與數值的元素

嘗試以下操作:

$("#test").find('option[value="some_value_of_option", option[value="some_value_of_option"]').prop("selected", true); 
1

爲什麼不從HTML做沒有jQuery的,而是直接?

<form> 
    <select multiple="multiple" id="test" class="multiselect"> 
    <option value="one">One</option> 
    <option value="two">Two</option> 
    <option value="three" selected>Three</option> 
    <option value="four" selected>Four</option> 
    <option value="five">Five</option> 
    </select> 
</form> 

如果你真的需要使用jQuery,我們可以延長當然Madalin的回答來更新視圖:

$("#test").find('option[value="cheese"]').prop("selected", true); 
$("#test").find('option[value="mozarella"]').prop("selected", true); 

// Don't forget to update view 
$("#test").multiselect('refresh'); 
+0

下拉值將根據其他下拉值進行更改。第一個下拉列表中有onchange()。這將是有用的,如果我們可以選擇使用jquery – user2083041

+1

這是正確的!你也可以使用'select'選項來改變這樣的值(如果有人需要的話)'$('#test')。multiselect('select',['some_value_of_option1','some_value_of_option2']);' – Viney

+0

感謝您的我已經按照rails的方式選擇了選項。我從options_from_collection_for_select – user2083041

1

我們可以在陣列作爲options_from_collection_for_select第三個參數的形式傳遞選擇的值。

例如, options_from_collection_for_select(@test, 「ID」, 「名稱」,[ 「1」, 「2」, 「3」])

+0

中選擇了好,但是,你說它應該依賴於其他已經選擇的值,應該在更改時更新。這是否也適用於此? –

+0

是的,它會工作。 – user2083041