如何使用JQUERY在更改事件上禁用下拉列表?

时间:2009-03-12 18:29:50

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

$(document).ready(function() {
      $('#<%=ddlContinents.ClientID %>').change(function() { 
      var element = $(this);
      var totalLength = element.children().length; 
      if ($(this).disabled == false) { $(this).disabled = true; }
      });
});

我要做的是触发dropdownlist的更改事件,并在更改时禁用此dropdownlist。代码正在触发和所有内容,但它不会禁用dropdownlist

这部分代码无效:

if ($(this).disabled == false) { $(this).disabled = true; } });

3 个答案:

答案 0 :(得分:17)

对于早期版本的jQuery,您应该将.prop()用于jQuery 1.6+或.attr()

&GT; jQuery 1.6:

$(document).ready(function() {
  $('#<%=ddlContinents.ClientID %>').change(function() { 
    var element = $(this);
    var totalLength = element.children().length;

    if (!$(this).prop("disabled")) { 
      $(this).prop("disabled", true); 
    } 
  });
});

&LT; jQuery 1.6:

$(document).ready(function() {
  $('#<%=ddlContinents.ClientID %>').change(function() { 
    var element = $(this);
    var totalLength = element.children().length;

    if (!$(this).attr("disabled")) { 
      $(this).attr("disabled", "disabled"); 
    } 
  });
});

答案 1 :(得分:11)

if (!$(this).attr("disabled")) { $(this).attr("disabled","disabled"); }

如果你想稍后启用它,你必须这样做:

$(this).removeAttr("disabled");

答案 2 :(得分:1)

我知道这篇文章很老了。如果有人在下拉列表功能上停止下拉列表,这可能会有所帮助

  if ($(this).attr('disabled', false)) 
         { $(this).attr('disabled', true);
    }