需要使用jQuery禁用选择框中已选择的选项。我希望它像asmselect一样变灰。
测试我的示例here。
//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。感谢帕特里克和西蒙。
发布于 2010-05-20 00:21:50
将此行添加到change
事件处理程序中
$("#theSelect option:selected").attr('disabled','disabled')
.siblings().removeAttr('disabled');
这将禁用选定的选项,并启用任何以前禁用的选项。
编辑:
如果您不想重新启用之前的代码,只需删除该行的这一部分:
.siblings().removeAttr('disabled');
编辑:
要在单击remove时重新启用,请将此代码添加到单击处理程序中。
$("#theSelect option[value=" + value + "]").removeAttr('disabled');
发布于 2016-12-07 01:10:47
请试一下这个,
$('#select_id option[value="'+value+'"]').attr("disabled", true);
发布于 2010-05-20 00:50:52
这将分别在您选择/删除选项时禁用/启用这些选项。
$("#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');
});
https://stackoverflow.com/questions/2867362
复制相似问题