我不認爲有跨瀏覽器支持隱藏選擇選項。
以下是一種方法。使用更類似於jQuery的處理事件的方法,因此您需要從HTML中刪除內聯onchange
。
試試看:http://jsfiddle.net/W9KvT/
var options = [
['1A','1B','1C'],
['2A','2B','2C']
];
$('select[name=choices]').change(function() {
var idx = $(this).children(':selected').index();
var set = '';
for(var i = 0, len = options[idx].length; i < len; i++) {
set += '<option>' + options[idx][i] + '</option>';
}
$('select[name=sub]').html(set);
}).change();
如果您不希望產生這些上飛每次,您可以創建每個選項字符串,並將其保存在陣列中,在其中加載類似的方式。
試試看:http://jsfiddle.net/W9KvT/1
var options = [
'<option>1A</option><option>1B</option><option>1C</option>',
'<option>2A</option><option>2B</option><option>2C</option>'
];
$('select[name=choices]').change(function() {
var idx = $(this).children(':selected').index();
$('select[name=sub]').html(options[idx]);
}).change();
編輯:正如@You指出,爲了確保與已禁用JavaScript的瀏覽器兼容,最好是有頁面加載時可用的所有可用選項。然後,您可以使用上面的代碼爲js瀏覽器覆蓋它們。
從@的<optgroup>
元素你的答案在這種情況下是一個好主意。
有一種方法可以做到這一點。你到目前爲止有什麼?考慮使用http://jsFiddle.net創建一個示例。 – MvanGeest 2010-07-31 20:40:05