jQuery でフォームの disabled を解除したり有効化する方法

以下のようなセレクトボックスを無効にしています。

1
<select name="sample" disabled="disabled"></select>

以前は以下のようにして無効にているフォームの部品の disabled を解除していました。

1
j$('input').attr("disabled", "");

しかし最近になってできなくなりましたので、disabled 属性自体を削除することにしました。

1
j$('input').removeAttr("disabled");

再度 disabled にする場合は以下のようにします。

1
j$('input').attr("disabled", "disabled");

コメント

  1. 高梨ギンペイさんのコメント

    .attr()の代わりに.prop()使って下さい。
    jQuery1.6で変更になりました。
    http://ginpen.com/2011/05/04/jquery1-6/

  2. 通りすがりさんのコメント

    attr()でdisableをどうこうするばあいは、
    true or falseで設定します。
    (かなり古いバージョンのjQueryはこの記事通りですが)

    また前の人が指摘している通り、
    1.6でprop()にかわり、1.6.1で後方互換が導入され、どちらでも使えるようになりました。