4

外部ライブラリを使用せずに、DOM 内のラジオ ボタンのグループにアクセスするための、標準に準拠し、クロス ブラウザ互換で、フォワード互換の最良の方法を探しています (これは、私の他の最新の投稿と密接に関連しています...)。

<input type="radio" value="1" name="myRadios" />One<br />
<input type="radio" value="2" name="myRadios" />Two<br />

getElementsByName() に関する矛盾する情報を読みましたが、これはこれを行う適切な方法のようですが、これが標準に準拠した前方互換性のあるソリューションであるかどうかは不明です。おそらくもっと良い方法がありますか?

4

2 に答える 2

2

私はこの解決策に完全に満足しているわけではありませんが、最終的に Gecko DOM ドキュメントでこれを突き止めました。

name は DOM オブジェクトの name 属性を取得または設定します。次の要素にのみ適用されます: アンカー、アプレット、フォーム、フレーム、iframe、画像、入力、マップ、メタ、オブジェクト、オプション、パラメータ、選択、およびテキストエリア。

HTMLElement.name = string;
var elName = HTMLElement.name;

var fControl = HTMLFormElement.elementName;
var controlCollection = HTMLFormElement.elements.elementName;

詳細はこちら: https://developer.mozilla.org/en/DOM/element.name

したがって、これは標準に準拠した進め方だと思います(ただし、ベストプラクティスは実際には存在しない可能性があります...)

document.getElementById('myForm').elements.myRadios
于 2010-03-13T04:15:03.050 に答える
0

今後の最善策は次のとおりだと思います。

form.elements.myRadios

form.myRadios

その理由は、最新の仕様によると、チェックされたアイテムの値を示す属性を含む (複数の要素が同じ名前の場合)elements.someNameのオブジェクトを返すためです。RadioNodeListvalue

form.myradios一方NodeList、アイテムの順序付けられたコレクションであり、プロパティを持たないオブジェクトを返しvalueます。

ラジオやチェックボックスでチェックされたアイテムを見つけることは、伝統的に非常に骨の折れる作業でした。

ただし、チェックボックスのチェックされたすべての要素にどのようにアクセスするのかわかりません。仕様ではそれを見つけることができませんでした。それが欠けていないことを願っています。

于 2010-03-13T05:20:18.107 に答える