首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >jQuery -禁用选定的选项

jQuery -禁用选定的选项
EN

Stack Overflow用户
提问于 2010-05-20 00:14:38
回答 4查看 257.7K关注 0票数 67

需要使用jQuery禁用选择框中已选择的选项。我希望它像asmselect一样变灰。

测试我的示例here

代码语言:javascript
复制
//JS
$("#theSelect").change(function(){          
  var value = $("#theSelect option:selected").val();
  var theDiv = $(".is" + value);

  theDiv.slideDown().removeClass("hidden");
});


$("div a.remove").click(function () {     
  $(this).parent().slideUp(function() { $(this).addClass("hidden"); }); 
});

//HTML
<body>
<div class="selectContainer">
    <select id="theSelect">
        <option value="">- Select -</option>
        <option value="Patient">Patient</option>
        <option value="Physician">Physician</option>
        <option value="Nurse">Nurse</option>
    </select>
</div>
<div class="hidden isPatient">Patient <a href="#" class="remove" rel="Patient">remove</a></div>
<div class="hidden isPhysician">Physician <a href="#" class="remove" rel="Patient">remove</a></div>
<div class="hidden isNurse">Nurse <a href="#" class="remove" rel="Patient">remove</a></div>
</body>​

更新了:这是finished solution。感谢帕特里克和西蒙。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-05-20 00:21:50

将此行添加到change事件处理程序中

代码语言:javascript
复制
    $("#theSelect option:selected").attr('disabled','disabled')
        .siblings().removeAttr('disabled');

这将禁用选定的选项,并启用任何以前禁用的选项。

编辑:

如果您不想重新启用之前的代码,只需删除该行的这一部分:

代码语言:javascript
复制
        .siblings().removeAttr('disabled');

编辑:

http://jsfiddle.net/pd5Nk/1/

要在单击remove时重新启用,请将此代码添加到单击处理程序中。

代码语言:javascript
复制
$("#theSelect option[value=" + value + "]").removeAttr('disabled');
票数 136
EN

Stack Overflow用户

发布于 2016-12-07 01:10:47

请试一下这个,

代码语言:javascript
复制
$('#select_id option[value="'+value+'"]').attr("disabled", true);
票数 10
EN

Stack Overflow用户

发布于 2010-05-20 00:50:52

这将分别在您选择/删除选项时禁用/启用这些选项。

代码语言:javascript
复制
$("#theSelect").change(function(){          
    var value = $(this).val();
    if (value === '') return;
    var theDiv = $(".is" + value);

    var option = $("option[value='" + value + "']", this);
    option.attr("disabled","disabled");

    theDiv.slideDown().removeClass("hidden");
    theDiv.find('a').data("option",option);
});


$("div a.remove").click(function () {     
    $(this).parent().slideUp(function() { $(this).addClass("hidden"); });
    $(this).data("option").removeAttr('disabled');
});

演示:http://jsfiddle.net/AaXkd/

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2867362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档