60

効率を上げるために、name属性を省略したり、nullに設定したりした場合でも、テキストエリア内のファイルまたはテキストがサーバーに転送されるのではないかと思います。例えば

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

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

4

3 に答える 3

72

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

于 2012-09-22T12:47:37.093 に答える
27

いいえ。

私はすべてのブラウザーでこれをチェックしました - ブラウザーからの POST/GET リクエストに、名前が空または欠落しているフィールドがありません。id があるかどうかは問題ではありません (私の考えでは、ブラウザは名前に id を使用する可能性がありますが、使用しません)。

于 2013-10-10T20:37:57.503 に答える
-1

直接は機能しませんが、JavaScript で AJAX 呼び出しを介してそれらを割り当てることができます。idk は、これが現実の世界で実際にアプリケーションを持っているかどうかを本当に知っています (1 つは、サーバーが期待するパラメーターの難読化である可能性があります)。

持つ

<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*/

テストしていないため、コードが完全に正しいとは限らないことに注意してください。ただし、その背後にあるロジックは一目瞭然です。

于 2015-12-10T16:42:30.903 に答える