jQuery を使用して要素を効果的に無効化および有効化する方法: attr() と prop() の違いを理解する
問題:
最初は入力を無効にし、リンクをクリックしたときに入力を有効にしようとしていますが、現在の jQuery ソリューションは機能しません。
HTML:
<code class="html"><input type="text" disabled="disabled" class="inputDisabled" value=""></code>
jQuery:
<code class="javascript">$("#edit").click(function(event){ event.preventDefault(); $('.inputDisabled').removeAttr("disabled") });</code>
原因:
削除にremoveAttr()を使用しています。 「disabled」属性を使用できますが、このアプローチには、特に「disabled」のようなブール属性の場合に制限があります。
解決策: attr() の代わりに prop() を使用する
ブール属性の場合は、attr() の代わりに prop() メソッドを使用することをお勧めします。このメソッドは、要素の基になるプロパティ値を明示的に変更します。これは、より効率的で、ブール属性に適しています。
更新された jQuery:
<code class="javascript">$("#edit").click(function(event){ event.preventDefault(); $('.inputDisabled').prop("disabled", false); // Element(s) are now enabled. });</code>
理由ブール属性の attr() よりも prop() を使用しますか?
注: 以前の jQuery バージョンでは3.0 では、ブール属性の RemoveAttr() も、対応するプロパティを false に設定します。この動作は後のバージョンでは非推奨となり、ブール属性に prop() を使用する重要性が強調されています。
以上がjQuery で要素を無効または有効にする最適な方法は何ですか: ブール属性の prop() と attr() の比較の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。