從可用性的角度來看,如果選項的數量真的很長,很難找到您實際需要的選項。
試圖找到一種方式來分割的選項分成類別,或許顯示兩個下拉菜單:第一個選擇的類別,而第二隻顯示類別中的選項。您可以使用jQuery根據第一個選擇中的選擇動態創建第二個下拉列表的<option>
。
E.g
options = {
"one": [1, 2, 3, 4],
"two": [11, 12, 13, 14],
"three": [21, 22, 23, 24]
}
$("select.select1").change(function() {
var category = $(this).val() || $(this).text();
if (options[category]) {
$("select.select2").empty();
for (var i in options[category]) {
var newOption = $("<option>").text(options[category][i]);
$("select.select2").append(newOption);
}
} else {
$("select.select2").html("<option>Select a category first</option>");
}
});
$("select.select1").change();
隨着HTML:
<select class="select1">
<option>one</option>
<option>two</option>
<option>three</option>
</select>
<select class="select2">
<!-- I am dynamically generated -->
</select>
編碼是很好的。但是,我們應該始終記住**所需的**(接口和元素)部分,而不是修改提供**(接口和元素如何編碼)的部分。 – 2010-08-09 06:41:47
@Knowledge Craving-我不知道我理解你,但我不建議該接口被更改爲允許動態生成的選項,但它應該用於可用性方面的改進而改變。代碼本身不那麼重要,幫助網站的最終用戶縮小到他/她想要的更快更重要。 – 2010-08-09 07:03:02
我同意你的最後一點。 – 2010-08-09 07:14:48