jQuery按文本禁用下拉列表

时间:2014-08-11 16:29:44

标签: jquery asp.net drop-down-menu

我有一个asp:net下拉列表,其中附加了额外的项目服务器端:

<asp:DropDownList ID="ddlResult" runat="server">
    <asp:ListItem Value="" Text="-- Please Select --"></asp:ListItem>
</asp:DropDownList>

...基本上我想通过jQuery中的显示文本禁用/启用条目。我在这里尝试了很多例子,但似乎没有一个适合我。例如

$("#ddlResult option[text='Positive']").attr('disabled','disabled');

...或...

$("#ddlResult option[text='Positive']").hide();

......或......

$("#<% =ddlResult.ClientID %> > option[text='Positive']").attr("disabled", "disabled")

......等等。

有人可以告诉我哪里出错吗?

提前致谢。

3 个答案:

答案 0 :(得分:2)

可能是这样的。您可以使用:contains选择器查找文本并禁用该选项。

$('#ddlResult option:contains("Positive")').prop("disabled", true);

$('#ddlResult option:contains("Positive")').attr("disabled", "disabled");

工作Demo

答案 1 :(得分:1)

您必须使用filter方法选择正确的option元素,然后选择hidedisable,如下所示:

 $("#ddlResult option").filter(function() { 
      return $(this).text().trim() == 'Positive'; 
 }).hide();

 $("#ddlResult option").filter(function() { 
      return $(this).text().trim() == 'Positive'; 
 }).prop('disabled',true);

请注意,要在启用和停用之间切换,您必须使用.prop() - 建议:

1. .prop('disabled',false); //to enable
2. .prop('disabled',true); //to disable

如果您选择使用.attr('disabled', '..anything..')进行停用,则必须使用.removeAttr('disabled')启用。

答案 2 :(得分:0)

尝试下面的模式

$(document).ready(function(){

$(&#34;#&lt;%= DropdownListId.ClientId%&gt;选项[value =&#39; 1&#39;]&#34;)。attr(&#34;禁用&#34;, &#34;禁用&#34);

});