60

出于效率目的,我想知道如果您省略 name 属性或将其设置为 null,textarea 中的文件或文本是否仍会传输到服务器。例如

<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 真的知道这在现实世界中是否真的有任何应用程序(一个可能是服务器期望的参数的混淆)

<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 回答