如何使用jQuery在html中启用或禁用select标签?

时间:2011-07-27 01:50:07

标签: javascript jquery html

如何在jQuery中从第一个选择标记中选择一个选项后启用或禁用select标记,但当前版本不起作用。

$("select[name='selectALPHA']").change(function () {
    if ($("select[name='selectBRAVO'"].attr('enabled') == false {
      $("select[name='selectBRAVO']").attr('enabled', 'true');
    }
    else
    {
      $("select[name='selectBRAVO']").attr('enabled', 'false');
    }
});

4 个答案:

答案 0 :(得分:4)

.attr()需要一个布尔值。

$("select[name='selectBRAVO']").attr('disabled', false);

该代码还包含语法错误。修正:

var $bravo = $("select[name='selectBRAVO']");

$("select[name='selectALPHA']").change(function () {
    $bravo.attr('enabled', !$bravo.attr('enabled'));
});

答案 1 :(得分:2)

您似乎想要以普通的js:

切换值
var select = document.getElementsByName('selectBRAVO')[0];
select.disabled = !select.disabled;

我相信你可以找出jQuery的等价物。

修改

根据里德的建议,这与Matt的不同之处在于:

var select = $("select[name='selectBRAVO']")[0];
select.disabled = !select.disabled;

旧的jQuery attr 方法混淆了HTML属性和DOM属性。在新版本中, attr 仅处理HTML属性,这更好。但是,在绝大多数情况下,程序员真正想要的是DOM属性。可以直接访问,无需调用 attr getAttribute 。直接属性访问(非常)更快,更少键入和更容易阅读。

答案 2 :(得分:1)

我们都知道select元素的属性为disabled

<select disabled="disabled">
</select>

使用jQuery操作属性的值,作为http://api.jquery.com/attr/#attr2上的示例:

$("button:gt(1)").attr("disabled","disabled");

您可以在select元素中执行相同操作:

$("select[name='selectALPHA']").change(function () {
    if ($("select[name='selectBRAVO'"].attr('disabled') == 'disabled'{
      $("select[name='selectBRAVO']").removeAttr('disabled');
    }
    else
    {
      $("select[name='selectBRAVO']").attr('disabled', 'disabled');
    }
});

答案 3 :(得分:1)

我不太确定你想在这里实现什么,但我认为这可以帮助你:

$("select[name='select1']").change(function () {
    var jSelect2=$("select[name='select2']");

    if($(this).val()){
       jSelect2.removeAttr('disabled');
    }else{
       jSelect2.attr('disabled', 'disabled');
    }

});

请参阅此处的工作示例:JSFiddle