私は一貫性のために1つを選びたかったのですが(それは問題ではないと思いますが)、idを使用しました....経由document.getElementById().
もう使わない
- js アクセスの名前属性
- フォーム配列アクセス
これには複数の投稿があります...しかし、生活を楽にし、これ以上考えないようにするために..私はIDのみを使用しています。
この選択に問題はありますか?
N5とN6とW3のスペックはあまり気にしません。
以下に類似の投稿をいくつか示します。
私は一貫性のために1つを選びたかったのですが(それは問題ではないと思いますが)、idを使用しました....経由document.getElementById().
もう使わない
これには複数の投稿があります...しかし、生活を楽にし、これ以上考えないようにするために..私はIDのみを使用しています。
この選択に問題はありますか?
N5とN6とW3のスペックはあまり気にしません。
以下に類似の投稿をいくつか示します。
ID は、ページ上のすべての要素の一意の ID に使用されると想定されています。そのため、同じドキュメントに複数回含めることは無効です。
しかし... NAME属性は、HTML標準内で合法的に繰り返すことができます。name がフォーム入力項目で使用される場合、cgi が受け取る値は、name=value のペアに基づいています。ID には固有の名前はありません。
正直なところ.. 2つの目的が非常に異なるため、ここではリンゴとオレンジを混ぜていると思います。
1 つのページに複数の入力がある複数のフォームがある場合、各フォーム入力にidを使用する場合は、各入力の識別子の一意性に注意する必要があります。そのため、識別子は「my-form-user-name」や「my-other-special-form-user-name」などのように長くなる可能性があります。
したがって、フォーム要素に ID を指定し、ID でフォームを取得してから、その要素を名前で参照することをお勧めします。それぞれに 10 個のフィールドを持つ 5 つのフォームの 50 個のフィールドを作成するよりも、いくつかのフォームに一意で読み取り可能な識別子を作成する方が簡単です。そして、おそらくコードはより読みやすくなります。
<h4>Article form</h4>
<form id="article-form" method="post">
<label>Title:</label>
<input name="title" type="text" />
<label>Text:</label>
<textarea name="text"></textarea>
<input type="submit" name="submit" value="Comment" />
</form>
<hr />
<h4>Support form</h4>
<form id="support-form" method="post">
<label>Title:</label>
<input name="title" type="text" />
<label>Text:</label>
<textarea name="text"></textarea>
<input type="submit" name="submit" value="Submit issue" />
</form>
<script type="text/javascript">
var article = document.getElementById('article-form'),
ticket = document.getElementById('support-form');
article['title'].value = 'My Article';
article['text'].value = 'The text of my article...';
ticket['title'].value = 'I found bug at your site';
ticket['text'].value = 'Bug description...';
</script>
しかし、私の例のようにラベルを使用していて、それらの属性を使用for
してそれらを入力にバインドしたい場合は、とにかくその入力の識別子が必要です。