“名前”を使用することは冗長ですか?最新のWeb開発における入力フィールドの属性?
質問
「名前」という名前の入力フィールドを含むフォームを持つ多くのウェブサイトに気付きました。属性は、スタイリングやスクリプトの目的で使用されていない場合でも指定されます!
さらに、公式文書 HTMLドキュメントのフォームについて...
name = cdata [CI] この属性名 参照できるように要素 スタイルシートまたはスクリプトから。注意。 この属性は 後方互換性。用途 id属性を使用して 要素を識別します。
だから、私の質問は次のとおりです。この属性はスタイリングとスクリプトの目的にのみ使用すべきですか?
事前に感謝します!
編集:特に、" text"の入力フィールドでこの属性の使用を避けることができます。タイプ(スタイリングやスクリプト作成の目的がない場合)?
編集2:これで、私が考えていたことをほぼ確認できました。「名前」属性は今後のHTML仕様/標準で非推奨になります!!!まだ「アライブ」です下位互換性のみ
...回避できる場合もありますが、それが必要な場合もあります(ラジオボタンなど)!
解決
name
属性は、非DOM Javascriptを介してWebページのスコープ内の特定の要素を参照する表記法です。
document.forms['your_form'].elements['aa']
要素の id
属性は、以下を機能させるために同じ値に設定する必要があります:
document.getElementById('aa')
私の理解では、NetscapeがJavascriptを作成したとき、 name
属性を使用していました。ただし、HTML仕様では id
を使用することを決定しましたが、下位互換性のために name
を保持しました。 IEのJavaScriptエンジンは id
属性を読み取らないため、 name
属性のみを使用するため、Internet Explorer 6のサポートには name
属性を使用する必要がありました。 >両方とも定義されました。
..." text"の入力フィールドでこの属性を使用することは避けられます。タイプ(スタイルやスクリプトの目的がない場合)?
テキストフィールドにjavascriptが添付されていない場合、はい-それらは不要です。
他のヒント
ほとんどすべてのサイトに、name属性を使用した入力があることがわかります。すぐに消えることはありません。
name属性は名前を指定します 入力要素の場合。
名前属性は、識別するために使用されます 送信後のフォームデータ サーバー、または参照フォーム クライアントでJavaScriptを使用したデータ 側。
注:名前を持つ要素のみを形成します 属性には値があります フォームの送信時に渡されます。
id属性とname属性には違いがあります。 idはHTMLドキュメント内のすべての要素に適用できますが、名前は入力フィールドにのみ関連します。 idは、標準ではページ内で一意である必要があります(すべてのWebページで必ずしも従う必要はありません)。ただし、異なる要素には同じ名前を付けることができます。特定のケースが思い浮かぶのは、ラジオボタンです。すべてのラジオボタンには同じ名前を付ける必要があり、選択したボタンの値がフォームに返されます。そのため、名前はHTMLフォームの処理において依然として重要であることがわかります。
自動HTMLフォーム生成システム( zope.formlib など)で見た、 idおよびname属性は両方とも、異なるタイプの入力ウィジェットに対して自動的に生成されます。このような自動フォーム生成システムは、id属性とname属性の違いに関連するすべてのニュアンスを適切に処理します。また、各チェックボックス要素に対して非表示の入力要素を生成するなどのことも行います。そのため、可能な限り、何らかの自動HTMLフォーム生成メカニズムを使用して、関連する問題を処理するようにします。
これは古い質問ですが、最近のJSフレームワークの多くは name
属性に依存していることに注意してください。特に、jQueryの serialize
関数:
フォーム要素の値をシリアル化された文字列に含めるには、要素にname属性が必要です。
もしあれば、 name
はカムバックしているようです。
name
属性は、「スコープ」がわずかに多いため便利です。 id
よりも。 id
はページ内で一意である必要がありますが、同じ name
を複数回使用できます。これは、同じページに複数のフォームがある場合、またはチェックボックスのグループを参照する場合などに便利です。
IIRCの古いブラウザはIDの代わりに名前を使用するため、通常は含まれています。