2011-05-04 32 views
5

我想改變一個用戶是否可以只選擇一個或多個選項,在上面的複選框的選擇框中。 即,如果勾選勾選,則用戶可以選擇多個值,如果未勾選,則它們只能選擇一個值。什麼是使用jQuery來做到這一點的最佳方式?jquery添加/刪除多個屬性在選擇

+1

將更改偵聽器附加到複選框並編輯select的「multiple」屬性。 – 2011-05-04 09:58:50

回答

3
$("#theCheckbox").change(function() { 
    $("#theSelect").attr("multiple", (this.checked) ? "multiple" : ""); 
}).change(); 

You can try it here.

+1

這隻適用於jQuery 1.5.2 – 2014-05-29 14:13:25

2
$('#checkboxid').change(function(){ 

    if ($(this).is(':checked')) 
    { 
     $('#listbox').attr('multiple','multiple'); 
    } 
    else 
    { 
     $('#listbox').removeAttr('multiple'); 
    } 
}) 

演示:http://jsfiddle.net/ynhat/WCPue/1/

5

對於較新的jQuery設置道具,而不是ATTR作品:

http://jsfiddle.net/DdhSF/267/

$("#theCheckbox").change(function() { 
    $("#theSelect").prop("multiple", (this.checked) ? "multiple" : ""); 
}).change(); 
+1

爲什麼這個工作,爲什麼它的工作,因爲它呢?也就是說,當選中該複選框時,爲什麼是'select'元素''?爲什麼將'multiple'設置爲空字符串將其刪除?我無法在文檔中找到解釋此行爲的任何內容。 – Paul 2015-07-10 12:07:08

+0

好問題,我沒有時間研究它。這很煩人,這些簡單的基本任務如何成爲PITA – 2015-07-10 16:33:53

+0

prop(attr,value)應該用於布爾值而不是字符串,所以「multiple」作爲true並且「」作爲false使用,http://jsfiddle.net/ DdhSF/269 / – 2015-07-15 10:23:41