2

可能であれば、「name」属性と「id」属性が一致するHTMLフォームのほとんどのフィールドに名前を付けるようにコーディングするときは長い間習慣があります。これにより、ダイナミックHTMLの生成を簡素化できます。元。PHPでドロップダウンを作成する:

select("myselect", $values);

それ以外の:

select("myselect", "myselectId", $values)

また、私の要素をJQueryのようなセレクター(検証など)ですぐに利用できるようにします。

このソリューションにはいくつかの問題があることを私は知っています(ラジオボタンとチェックボックス配列には適していません-そしてその$idためにラジオ用のPHP関数にパラメーターを含めます-それは異なる目的のために意図された2つの属性を混合します1つのフォームがページにあります)。

この悪い習慣は本当にそんなに悪いのでしょうか?私は他のいくつかの考えられる負の副作用を見落としましたか?私の代わりに何をしますか?

  • 問題が発生しないときはいつでもこれに固執してください
  • 「ids」をまったく使用せず、JQueryに適切なセレクターを使用します。$(form[name='...'] input[name='...']).somefunction()
  • すべての要素に異なるIDをコーディングしますか?
4

1 に答える 1

6

名前とIDに一致する要素を指定しても問題は発生しないため、心配する必要はなく、悪い習慣ではありません。

問題を引き起こす関連事項:

  • 複数の要素に同じIDを指定します(たとえば、各メンバーが同じ名前を持っている必要があるラジオボタングループがある場合)。
  • 1つの要素に名前を付け、別の要素に一致するIDを付ける

「ids」は一切使用しないでください

フォームコントロールにIDを指定しない場合、属性を使用してそれを要素forに関連付けることはできません。<label>属性のサポートはfor、フォームコントロールをラベルの子孫にする場合よりもわずかに優れています。ラベルはアクセシビリティに非常に役立ちます(クリックターゲットのサイズが大きくなり、コントロールと入力の間に非視覚的な関連付けが与えられます)。IDをオフのままにしておくことはお勧めできません。

于 2012-07-30T14:56:20.237 に答える