回答:
このname
属性は、フォーム送信でデータを送信するときに使用されます。コントロールによって反応が異なります。たとえば、id
属性は異なるが同じのラジオボタンがいくつかあるとしname
ます。送信すると、応答には1つの値、つまり選択したラジオボタンのみが含まれます。
もちろん、それだけではありませんが、間違いなく正しい方向に考えることができます。
id
、フロントエンド(CSS、JS)が動作するのはでありname
、サーバーが受信して処理できるのはです。これは基本的にグリーゾの答えが言うことです。
フォームの送信時に発生するまたは呼び出しで使用される識別子であるname
ため、フォームコントロール(<input>
およびなど<select>
)の属性を使用します。POST
GET
id
CSS、JavaScript、またはフラグメント識別子を使用して特定のHTML要素をアドレス指定する必要がある場合は、常に属性を使用します。要素を名前で検索することもできますが、IDで検索する方が簡単で信頼性が高くなります。
name
とid
、すべてでは。識別子は、ページ上の特定のHTML要素を一意に識別します。name
対照的に、HTMLフォーム要素の属性は一意である必要はなく、多くの場合、ラジオボタンや複数の<form>
要素を持つページなどではありません。のために同じ文字列を使用する伝統的であるname
とid
の両方を単一のHTML要素で使用されている場合、何も、あなたがこれを行うものではありません。
こちらをご覧くださいhttp://mindprod.com/jgloss/htmlforms.html#IDVSNAME
違いは何ですか?簡単に言えば、両方を使用し、心配する必要はありません。しかし、この間抜けを理解したい場合は、ここに細いです:
id =は、次のようなターゲットとして使用する
<some-element id="XXX"></some-element>
ためのものです<a href="#XXX"
。name =は、フォームで送信をクリックしたときに、HTTP(HyperText Transfer Protocol)GETまたはPOSTを使用してサーバーに送信されるメッセージのフィールドにラベルを付けるためにも使用されます。
id =は、JavaScriptおよびJava DOM(Document Object Model)が使用するフィールドにラベルを付けます。name =の名前は、フォーム内で一意である必要があります。id =の名前は、ドキュメント全体で一意である必要があります。
サーバーが同じドキュメント内のさまざまなフォームまたは同じフォームのさまざまなラジオボタンから同じ名前を期待しているため、name =とid =の名前が異なる場合があります。id =は一意である必要があります。name =であってはなりません。
JavaScriptには一意の名前が必要でしたが、一意のname =名がないドキュメントが既に多すぎるため、W3の人々は一意であることが要求されるidタグを発明しました。残念ながら古いブラウザはそれを理解していませんでした。したがって、フォームには両方の命名規則が必要です。
注:などの一部のタグの属性「名前」<a>
は、HTML5ではサポートされていません。
name
にとって重要であり、これは単なる一意の識別子です<input>
<form>
id
私はそれについて考え、それを使用する方法は簡単です:
idはCSSおよびJavaScript / jQueryに使用されます(ページ内で一意である必要があります)
nameは、フォームがHTML経由で送信されるときにPHPでのフォーム処理に使用されます(フォーム内で一意である必要があります-ある程度、以下のPaulのコメントを参照してください)
IDタグ-CSSで使用され、div、span、またはその他の要素の一意のインスタンスを定義します。Javascript DOMモデル内に表示され、さまざまな関数呼び出しでアクセスできるようにします。
フィールドの名前タグ-これは、PHP /サーバー側の処理に渡す配列を実行している場合を除き、フォームごとに一意です。名前でJavaScriptを介してアクセスできますが、DOMのノードとして表示されないか、いくつかの制限が適用されると思います(たとえば、正しく思い出せば、.innerHTMLを使用できません)。
一般に、名前は常にidに取って代わられると想定されています。これはある程度当てはまりますが、実際には、フォームフィールドやフレーム名には当てはまりません。たとえば、フォーム要素では、name
属性はサーバー側プログラムに送信される名前と値のペアを決定するために使用されるため、削除しないでください。Browsers do not use id in that manner
。安全のために、フォーム要素でname属性とid属性を使用できます。したがって、次のように記述します。
<form id="myForm" name="myForm">
<input type="text" id="userName" name="userName" />
</form>
互換性を確保するために、name属性とid属性の値が両方とも定義されている場合は、それらを一致させることをお勧めします。ただし、注意してください。一部のタグ、特にラジオボタンには、一意でない名前の値が必要ですが、一意のID値が必要です。繰り返しになりますが、これはそのidが単に名前の置き換えではないことを示しています。目的は異なります。さらに、古いスタイルのアプローチを軽視しないでください。最新のライブラリを詳しく調べると、パフォーマンスと使いやすさの目的で使用されるそのような構文スタイルが示されています。あなたの目標は常に互換性を支持するべきです。
現在、ほとんどの要素で、より遍在的なid属性のために、name属性は廃止されています。しかし、いくつかのケースでは、特にフィールドを形成する(<button>
、<input>
、<select>
、および<textarea>
)、それはフォームの送信のための名前と値のペアを設定するために必要とされることが続けるためにname属性の生活。また、フレームやリンクなどの一部の要素は、名前でこれらの要素を取得するのに役立つことが多いため、name属性を引き続き使用する場合があります。
idとnameの間には明確な違いがあります。多くの場合、名前が続く場合、同じ値を設定できます。ただし、idは一意である必要があり、名前は一意であってはなりません。ラジオボタンを考えてください。悲しいことに、ID値の一意性は、マークアップ検証によってキャッチされますが、本来あるべきほど一貫性がありません。ブラウザーのCSS実装は、id値を共有するオブジェクトをスタイルします。したがって、実行時までJavaScriptに影響を与える可能性のあるマークアップやスタイルのエラーを検出できない場合があります。
これは本JavaScript- The Complete Reference by Thomas-Powell
name
同じである必要がありますが(サーバー側のコードはどちらが送信されたかには関係id
ありません)、異なる必要があります(ページ全体で一意である必要があるため)。
name
リンクターゲットでは非推奨であり、HTML5では無効です。少なくとも最新のFirefox(v13)では動作しません。変更<a name="hello">
へ<a id="hello">
ターゲットは<a>
タグである必要はなく、<p id="hello"
> <h2 id="hello">
などにすることもできます。
他の投稿が明確に言うように、name
フォームではまだ使用されています(必要です)。METAタグでも引き続き使用されます。
このリンクには、同じ基本的な質問に対する回答がありますが、基本的に、idはスクリプト識別に使用され、nameはサーバー側に使用されます。
http://www.velocityreviews.com/forums/t115115-id-vs-name-attribute-for-html-controls.html
name Vs id
名前
<button>, <form>, <fieldset>, <iframe>,
<input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>,
<meta>, <param>
name
スタイル要素で使用される属性を見てきました。これは無効だと思いますか?
フォーム入力要素のIDは、要素内に含まれるデータとは関係ありません。IDは、JavaScriptおよびCSSで要素をフックするためのものです。ただし、name属性は、value属性に含まれるデータに関連付けられた変数名として、ブラウザーからサーバーに送信されるHTTPリクエストで使用されます。
例えば:
<form>
<input type="text" name="user" value="bob">
<input type="password" name="password" value="abcd1234">
</form>
フォームが送信されると、フォームデータは次のようにHTTPヘッダーに含まれます。
ID属性を追加しても、HTTPヘッダーの内容は変更されません。CSSとJavaScriptで簡単にフックできるようになります。
個人的な経験と属性のW3学校の説明に基づく:
IDはグローバル属性であり、HTMLのほとんどすべての要素に適用されます。Webページ上の要素を一意に識別するために使用され、その値は主にフロントエンドからアクセスされます(通常はJavaScriptまたはjQueryを介して)。
nameは、HTMLの特定の要素(フォーム要素など)に役立つ属性です。その値はほとんどの場合、処理のためにバックエンドに送信されます。
以下は、id属性の興味深い使用法です。タグ内で使用され、境界内の要素のフォームを識別して、フォーム内の他のフィールドに含まれるようにします。
<form action="action_page.php" id="form1">
First name: <input type="text" name="fname"><br>
<input type="submit" value="Submit">
</form>
<p>The "Last name" field below is outside the form element, but still part of the form.</p>
Last name: <input type="text" name="lname" form="form1">
Id:1)これは、(JavaScript経由またはCSSでスタイル設定された)ドキュメントオブジェクトモデルを通じてHTML要素を識別するために使用されます。2)IDはページ内で一意であることが期待されます。
名前はフォーム要素に対応し、サーバーにポストバックされるものを識別します。例:
<form action="action_page.php" id="Myform">
First name: <input type="text" name="FirstName"><br>
<input type="submit" value="Submit">
</form>
<p>The "Last name" field below is outside the form element, but still part of the form.</p>
Last name: <input type="text" name="LastName" form="Myform">
IDは、要素を一意に識別するために使用されます。
名前はフォームで使用されます。フォームを送信しても、名前を指定しないと何も送信されません。したがって、フォーム要素には、「getまたはpush」などのフォームメソッドによって識別される名前が必要です。
そして、name属性のみのものは消えます。
id
あなたは、要素を読み取るためのIDを使用することができます(JavaScriptのような)実際のコードを書くので、一度、要素にIDを与えるだろう。これname
は単なる名前なので、ユーザーは要素の名前を確認できます。
例:
<h1 id="heading">text</h1>
<script>
document.getElementById("heading"); //Reads the element that has the id "heading".
</script>
//You can also use something like this:
document.getElementById("heading").value; //Reads the value of the selected element.
役に立ちましたか?何か問題があれば教えてください。
IDと名前の間に文字どおりの違いはありません。
nameは識別子であり、要素のvalue属性に含まれるデータに関連付けられた変数名としてブラウザからサーバーに送信されるhttpリクエストで使用されます。
一方、idはブラウザー、クライアント側、JavaScriptの一意の識別子です。Henceフォームにはidが必要ですが、要素には名前が必要です。
idは、固有の要素に属性を追加する場合に、より具体的に使用されます。DOMメソッドでは、JavaScriptで、アクションを実行する特定の要素を参照するためにIDが使用されます。
例えば:
<html>
<body>
<h1 id="demo"></h1>
<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>
</body>
</html>
同じことはname属性でも実現できますが、inputタグやselectタグなどの小さなフォーム要素のフォームと名前にはidを使用することをお勧めします。