5

これは「ベスト プラクティス」の質問です。Code Review StackExchage サイトを熟読していて、このスレッドを見ました。その中で、Joseph Silber は、複数の同じ構造のフォーム入力行を持つフォームに対して、ブラケット表記を使用し、ID を完全に避けることを提案しています。

私が読んだ Web デザイン/開発に関する本では、この戦略が使用されているのを見たことがありません。角かっこ表記を使用し、入力要素を label タグ内にラップすること、およびフォーム入力で id タグを使用しないことは良い考えですか? おそらく、このアプローチを有利にする Javascript/JQuery に関する何かがあるでしょうか?

ジョセフに直接聞きたかったのですが、まだサイトでの評判が良くないので、コメントすることもできませんでした。ただし、「HTML5 ブラケット表記法」や「HTML5 配列のような表記法」などを検索しても、これまでのところ決定的なものは見つからないため、これに関するコミュニティ全体の視点に興味があります。

上記の質問の要約と、リンクされた質問から借用したコード例を次に示します。

これを使用する理由:

<label>Comment:
  <input type="text" name="comment[]" width="50" />
</label>

これの代わりに:

<label for="comment-0">Comment: </label>
<input type="text" id="comment-0" name="comment-0" width="50" />

同じ入力の複数の行を持つフォームで?

4

1 に答える 1

5

入力名の最後に固執[]すると、一部のサーバー側フォーム処理ライブラリがデータを配列として表示する原因になります。他の一部のフォーム プロセッサは、特別な構文を必要としません。どちらを選択するかは、以前の種類と互換性を持たせたいという願望と、より複雑な名前を持ち、JS のドット表記を介して要素にアクセスできないという願望に大きく依存します。

for属性の代わりに子要素を使用すると、次のようになります。

  • 一意の ID を生成する必要がなくなります (同様のフォームが 1 つのページに表示される場合は特に便利です)。
  • スタイリングの選択肢を制限する
  • より少ないブラウザーと互換性があること (唯一の損失は IE の古いバージョンだと思いますが、これは大きな損失ではありません)。

そのため、長所と短所があり、どちらが適切かを判断する必要があります。

于 2013-01-07T14:34:05.693 に答える