2015-09-04 60 views
1

我使用select2.full.js選擇二4.0.0級聯的下拉列表中

我沒有使用任何require.js幫我拉模塊

,我基本上使用我懂得從一切我學會了在v3.5

我一直在嘗試無數個小時,圍繞這個包裹我的頭,但我不知道如何使ajax級聯下拉。

例如:您加載頁面,有第一個select2下拉菜單自動地使用ajax拉取數據(您不輸入任何內容..數據在服務器的頁面加載中),選擇默認值。由於選擇了默認值,第二個select2下拉菜單將使用該值進行ajax調用以填充其自己的列表。現在,當我在第一個select2下拉列表中選擇另一個值時,第二個select2下拉列表將反映新數據集的這些更改。

我能夠想出的是可以在頁面加載時填充的3個下拉列表,但是當您執行任何ajax請求時,下拉數據不會更改。

自從我使用select2以來,已經兩年了,並且庫不停地變化,文檔不斷變化,我憑藉這個庫在我的智慧結束。但我感受到它的引導支持,以及外觀和感覺。功能,實現方式的方式,文檔非常令人難以置信。

我沒有任何有用的代碼,我一直在拉,堵,修改等,現在我正在移動到我的頭髮和牙齒。

任何有用的例子,這樣做會很棒。

+0

你想在Select2 4.0.0或3.5.4中做到這一點? –

+0

select2 4.0.0,但我想通了..我發佈的解決方案.... – sksallaj

回答

0

剛剛發現我的答案..

我用的模板:

<select id="test"> 
    <option value="1">1</option> 
    <option value="2">2</option> 
</select> 

到:

data = [{id: "1", text: "1"}, {id: "2", text: "2"}]; 

<input id="test" type="hidden" /> 

,只是保留了我的jQuery的選擇2相同。所以這實際上只是模板的改變而已,解決了它。

然而,唯一的缺點是,當你被刷新,從這些下拉菜單的新數據,高亮(選擇的值)始終在下拉列表中的第一個項目,儘管這不是在顯示所選值下拉。

0

這裏是一個小的代碼片段,使選擇二(4.x版)級聯下拉菜單 - https://gist.github.com/ajaxray/187e7c9a00666a7ffff52a8a69b8bf31

使用此模塊,選擇2列表框的選項將根據另一選擇2列表選擇要加載/阿賈克斯刷新框。

實施例使用 -

new Select2Cascade($('#province'), $('#district'), 'path/to/geocode', {type:"district", parent_id: ''});

選擇的父的值SELECT2列表框將AJAX調用前被設置爲數據對象的parent_id

+0

如何將JSON數組的對象傳遞給子級下拉? https:// stackoverflow。COM /問題/ 44281109 /如何做 - 修改 - 選擇2 - 級聯下拉到接受-陣列的對象,JSON – Haris