3 回答

TA貢獻(xiàn)1854條經(jīng)驗(yàn) 獲得超8個(gè)贊
實(shí)現(xiàn)所需功能的正確方法是刪除選項(xiàng)。正如您發(fā)現(xiàn)的那樣,在瀏覽器中不支持禁用單個(gè)選項(xiàng)。我剛剛醒來,覺得自己喜歡編程,所以我掀起了一個(gè)小插件,可以根據(jù)收音機(jī)選擇的ID屬性輕松過濾選擇。雖然其他解決方案將完成工作,但如果您計(jì)劃在整個(gè)應(yīng)用程序中執(zhí)行此操作,這應(yīng)該會有所幫助。如果沒有,那么我想其他人偶然發(fā)現(xiàn)了這一點(diǎn)。這是你可以在某處隱藏的插件代碼:
jQuery.fn.filterOn = function(radio, values) { return this.each(function() { var select = this; var options = []; $(select).find('option').each(function() { options.push({value: $(this).val(), text: $(this).text()}); }); $(select).data('options', options); $(radio).click(function() { var options = $(select).empty().data('options'); var haystack = values[$(this).attr('id')]; $.each(options, function(i) { var option = options[i]; if($.inArray(option.value, haystack) !== -1) { $(select).append( $('<option>').text(option.text).val(option.value) ); } }); }); });};
以下是如何使用它:
$(function() { $('#theOptions').filterOn('input:radio[name=abc123]', { 'abc': ['a','b','c'], '123': ['1','2','3'] });});
第一個(gè)參數(shù)是無線電組的選擇器,第二個(gè)參數(shù)是字典,其中鍵是要匹配的無線電ID,值是應(yīng)保留的選項(xiàng)值的數(shù)組。有很多事情可以做進(jìn)一步抽象,讓我知道你是否感興趣,我當(dāng)然可以這樣做。
這是它的實(shí)際演示。
編輯:另外,忘了添加,根據(jù)jQuery 文檔:
在jQuery 1.3 [@attr]樣式選擇器被刪除(它們之前在jQuery 1.2中被棄用)。只需從選擇器中刪除“@”符號,以便再次使用它們。

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊
第一個(gè)問題是
$(this).val()
用它替換它
$(this).attr('id') == 'abc'
那么這不會奏效
$("'theOptions'..")
使用
$("#theOptions option[value='1']").attr('disabled','disabled') //to disable $("#theOptions option[value='a']").attr('disabled','') //to ENABLE
- 3 回答
- 0 關(guān)注
- 937 瀏覽
添加回答
舉報(bào)