2011-05-04 70 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

相关问题