web-dev-qa-db-ja.com

入力タグに名前がない場合でも、フォームデータは転送されますか?

効率を上げるために、name属性を省略するか、nullに設定すると、textarea内のファイルまたはテキストがまだサーバーに転送されるのではないかと考えています。例えば

<input type="file" id="file" name="">
<textarea id="text" name="">

これを行うと、サーバーでデータが利用できないことに気付きます。

48
Jamie Kitson

W3C仕様では、正しく理解できれば、すべてのフォーム入力要素にname属性を指定することが義務付けられています。そうでない場合、その要素は処理されません。 ソース

59
Petter

番号。

すべてのブラウザーでこれを確認しました-名前が空または欠落しているフィールドは、ブラウザーからのPOST/GET要求にありません。 idを持っているかどうかは関係ありません(ブラウザーは名前にidを使用するかもしれませんが、noは使用するかもしれないと思っていました)。

27
DenisS

それは直接動作しませんが、JavaScriptでAJAX呼び出しを介してそれらを割り当てることができます。サーバーが期待します)

持っている

<form id="login" method="post" action="someurl">
 <input id="username" type="text" /> 
 <input id="password" type="password" />
 <input type="submit" value="login" />
</form>

JSを処理する(jQueryを使用してajaxを処理する)

$("#login").on("submit",function(ev){
  $.post("someurl",{
    usrn: $("#username").val,
    pwd: $("#password").val       
  },function(ev){
          //this is the callback function that runs when the call is completed successfully
  });
}
/*second argument on $.post is and object with data to send in a post request 
usrn would be the name of the parameter recived in the server 
same for pwd "#username" and  "#password" are the id's html attribute for the field
'.val' is the jquery object's attribute in which jquery access the value in the text box
"$()" or it's equivalent "jQuery()" works like an object constructor that fills 
the attributes with the
DOM data that cover the css selector that this function expects as a parameter*/

私はそれをテストしていないので、コードが完全に正しいわけではないことに注意してくださいが、その背後にあるロジックは自明であるべきです

0
Dan Espinoza