2010-04-07 80 views

回答

4

對於一個簡單的jQuery插件,不需要任何其它數據源或數據文件。您可以使用:

http://code.google.com/p/jquery-option-tree/

所有的選項得到的JS代碼中定義的,希望你不會有一個大的數據集。

<input type="text" name="demo1" /> 

    var option_tree = { 
     "Option 1": {"Suboption":200}, 
     "Option 2": {"Suboption 2": {"Subsub 1":201, "Subsub 2":202}, 
      "Suboption 3": {"Subsub 3":203, "Subsub 4":204, "Subsub 5":205} 
      } 
    }; 

    $('input[name=demo1]').optionTree(option_tree); 
+0

似乎我投了這個有點太早 - 試圖製作一個表單,並認識到一些關鍵功能缺失:1)我不能在每個下拉列表中設置不同的默認選擇消息,例如「請選擇國家」,然後選擇「請選擇狀態「; 2)命名每個子下拉菜單似乎不可能,它將「_」附加到它上面,但是然後將整個選擇值放入一個字段中(工作正常,但命名每個子下拉菜單會很好)。 – Sologoub 2011-08-15 17:26:54

+0

@Sologoup 1)您可以傳入一個empty_value參數來設置默認消息。看看演示頁面上的例子。 – Glennular 2011-08-15 17:33:29

0

對不起公然自我宣傳,但我有同樣的問題,前面寫了Chained Selects插件來滿足我的需要。它與Glennular提供的相似,但有一些差異。而不是從JSON數組構建選擇,它使用HTML的類屬性來確定應該顯示哪些選項。例如:

<select id="mark"> 
    <option value="">--</option> 
    <option value="bmw">BMW</option> 
    <option value="audi">Audi</option> 
</select> 
<select id="series"> 
    <option value="">--</option> 
    <option value="series-3" class="bmw">3 series</option> 
    <option value="series-5" class="bmw">5 series</option> 
    <option value="series-6" class="bmw">6 series</option> 
    <option value="a3" class="audi">A3</option> 
    <option value="a4" class="audi">A4</option> 
    <option value="a5" class="audi">A5</option> 
</select> 

你會然後使它們鏈與下面的JavaScript:

$("#series").chained("#mark"); 

或者如果你喜歡長形式:

$("#series").chainedTo("#mark"); 

您還可能要檢查的來源單獨demo page

+0

只是關於你的鏈式選擇的問題。如果我想讓選項「3系列」同時屬於寶馬和奧迪? – Carven 2012-04-26 19:51:26

+0

@xEnOn我看着他的東西,顯然你可以添加多個類。 'value =「series-3」class =「bmw audi」' – scragar 2012-06-21 17:08:52

+0

@scragar我以前嘗試添加多個類,但它似乎沒有工作。 – Carven 2012-06-21 17:37:59