2

Java Script コードでいくつかの要素を無効にする必要があります。Java Script を使用して要素を無効にするのに適しているのはどれですか。

 1.   document.getElementById("eleId").disabled = true;

 2.   document.getElementById("eleId").disabled = "disabled";

誰かがこれらの機能を説明してください。これらの違いは何ですか?

4

5 に答える 5

4

どちらの場合も有効です。

ケース 1 では、属性「disabled」をブール値「true」に設定しています。ケース 2 では、属性「disabled」を文字列値「disabled」に設定しています。

この値を HTML 経由で設定する場合、通常は、リストされたタグの属性を「無効」にするだけで済みます。ただし、XHTML/XML スタイルに準拠するには、整形式の属性 disabled="disabled" を使用します。

基本的に、ブラウザが「無効」属性が存在することを検出した場合、(私は思うに)要素を無効にします。

EDIT 別のSOユーザー(RobG)は、これが「属性」ではなく、問題の要素の「DOMプロパティ」を設定することを指摘しました。

「getElementById」からの結果を処理する場合、ドキュメントの構造の表現を処理しています。変更を加えると、「オブジェクト モデル」のプロパティが設定されます。長い間 Java でプログラミングしてきたので、私は通常、プロパティと属性という用語を入れ替えます。「属性を設定する」という場合は、間違っていました。「属性」を設定すると言うことは、ドキュメント (HTML) を変更して、実際のソースで「無効」の値を変更したことを意味します。これが実際に行っているのは、代表オブジェクトのプロパティを設定してオブジェクト ツリーを変更することです。

于 2012-12-07T06:05:54.070 に答える
2

HTMLが無効になっている属性はブール値であり、その存在により、関連するDOMプロパティがに設定され、 HTML4.01およびHTML5trueで記述されます。

<... disabled ...>

XMLでは、属性には値が必要であるため、XHTMLの場合は次のように記述されます。

<... disabled="disabled" ...>

ただし、実際の値は関係ありませんが、ブール属性として機能します。

DOMでは、要素のプロパティは通常、関連する属性値を反映しますが、常にそうであるとは限りません。setAttribute方法と動作にも一貫性がgetAttributeないため、代わりに属性(データ属性など)を使用する正当な理由がない限り、JavaScriptではDOMプロパティを使用することをお勧めします。

要素を無効にするには、disabledDOMプロパティをブール値trueに設定する必要があります。要素を「無効化解除」するには、プロパティをに設定する必要がありますfalsetrue値に任意の文字列を割り当てると、型変換によって設定されます。

于 2012-12-07T06:30:59.670 に答える
2

XHTML では、属性の最小化は禁止されており、disabled 属性はdisabled="disabled"として定義する必要があります。

通常の HTML では、 disabled=true のようにすることができます。

于 2012-12-07T06:05:35.937 に答える
2

技術的には、属性に無効な属性しかない場合は、それを無効にする必要があります。ただし、XHTML の場合は disabled="disabled" にする必要があります。

于 2012-12-07T06:06:38.067 に答える
1

人々はxhtml属性値の間で混乱する傾向があります:

<input id="test" disabled="disabled"/>

およびjavascriptDOMapi:

inputElement.disabled = true;

そして、javascript値を文字列に設定します。技術的には正しくありませんが、正常に機能します。

于 2012-12-07T06:09:01.700 に答える