jQueryで入力を無効/有効にするには?質問する

jQueryで入力を無効/有効にするには?質問する
$input.disabled = true;

または

$input.disabled = "disabled";

標準的な方法はどれですか? また、逆に、無効になっている入力を有効にするにはどうすればよいでしょうか?

ベストアンサー1

jQuery 1.6 以上

disabledプロパティを変更するには、.prop()関数。

$("input").prop('disabled', true);
$("input").prop('disabled', false);

jQuery 1.5 以下

関数.prop()は存在しないが.attr()同様のことを行います:

無効属性を設定します。

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

再度有効にするには、適切な方法は.removeAttr()

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

jQueryのどのバージョンでも

実際の DOM オブジェクトに常に依存することができ、1 つの要素のみを処理する場合は、おそらく他の 2 つのオプションよりも少し速くなります。

// assuming an event handler thus 'this'
this.disabled = true;

.prop()またはメソッドを使用する利点.attr()は、選択した一連の項目のプロパティを設定できることです。


注: 1.6では、.removeProp()によく似たメソッドですremoveAttr()が、次のようなネイティブ プロパティでは使用しないでください'disabled'。ドキュメントからの抜粋:

注意: このメソッドを使用して、checked、disabled、selected などのネイティブ プロパティを削除しないでください。これにより、プロパティが完全に削除され、削除されると、要素に再度追加できなくなります。代わりに、.prop() を使用してこれらのプロパティを false に設定してください。

実際、このメソッドの正当な使用法は多くないと思います。ブール値のプロパティは、1.5 の「属性」の対応するもののように「削除」するのではなく、false に設定する必要があります。

おすすめ記事