Java Script コードでいくつかの要素を無効にする必要があります。Java Script を使用して要素を無効にするのに適しているのはどれですか。
1. document.getElementById("eleId").disabled = true;
2. document.getElementById("eleId").disabled = "disabled";
誰かがこれらの機能を説明してください。これらの違いは何ですか?
Java Script コードでいくつかの要素を無効にする必要があります。Java Script を使用して要素を無効にするのに適しているのはどれですか。
1. document.getElementById("eleId").disabled = true;
2. document.getElementById("eleId").disabled = "disabled";
誰かがこれらの機能を説明してください。これらの違いは何ですか?
どちらの場合も有効です。
ケース 1 では、属性「disabled」をブール値「true」に設定しています。ケース 2 では、属性「disabled」を文字列値「disabled」に設定しています。
この値を HTML 経由で設定する場合、通常は、リストされたタグの属性を「無効」にするだけで済みます。ただし、XHTML/XML スタイルに準拠するには、整形式の属性 disabled="disabled" を使用します。
基本的に、ブラウザが「無効」属性が存在することを検出した場合、(私は思うに)要素を無効にします。
EDIT 別のSOユーザー(RobG)は、これが「属性」ではなく、問題の要素の「DOMプロパティ」を設定することを指摘しました。
「getElementById」からの結果を処理する場合、ドキュメントの構造の表現を処理しています。変更を加えると、「オブジェクト モデル」のプロパティが設定されます。長い間 Java でプログラミングしてきたので、私は通常、プロパティと属性という用語を入れ替えます。「属性を設定する」という場合は、間違っていました。「属性」を設定すると言うことは、ドキュメント (HTML) を変更して、実際のソースで「無効」の値を変更したことを意味します。これが実際に行っているのは、代表オブジェクトのプロパティを設定してオブジェクト ツリーを変更することです。
HTMLが無効になっている属性はブール値であり、その存在により、関連するDOMプロパティがに設定され、 HTML4.01およびHTML5true
で記述されます。
<... disabled ...>
XMLでは、属性には値が必要であるため、XHTMLの場合は次のように記述されます。
<... disabled="disabled" ...>
ただし、実際の値は関係ありませんが、ブール属性として機能します。
DOMでは、要素のプロパティは通常、関連する属性値を反映しますが、常にそうであるとは限りません。setAttribute
方法と動作にも一貫性がgetAttribute
ないため、代わりに属性(データ属性など)を使用する正当な理由がない限り、JavaScriptではDOMプロパティを使用することをお勧めします。
要素を無効にするには、disabled
DOMプロパティをブール値true
に設定する必要があります。要素を「無効化解除」するには、プロパティをに設定する必要がありますfalse
。true
値に任意の文字列を割り当てると、型変換によって設定されます。
XHTML では、属性の最小化は禁止されており、disabled 属性はdisabled="disabled"として定義する必要があります。
通常の HTML では、 disabled=true のようにすることができます。
技術的には、属性に無効な属性しかない場合は、それを無効にする必要があります。ただし、XHTML の場合は disabled="disabled" にする必要があります。
人々はxhtml属性値の間で混乱する傾向があります:
<input id="test" disabled="disabled"/>
およびjavascriptDOMapi:
inputElement.disabled = true;
そして、javascript値を文字列に設定します。技術的には正しくありませんが、正常に機能します。