如果输入标签没有名称,表单数据是否仍会传输?

时间:2012-09-22 12:39:47

标签: html webforms html-form

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

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

我注意到,如果您这样做,数据在服务器上不可用。

3 个答案:

答案 0 :(得分:56)

如果我理解正确的话,W3C规范要求每个表单输入元素都指定了name属性。否则将不处理该元素。 Source

答案 1 :(得分:27)

没有。

我在所有浏览器中都检查了这一点 - 来自浏览器的POST / GET请求中缺少名称为空/缺少字段的字段。如果他们有或没有id并不重要(我的想法是浏览器可能使用id作为名称而不是)。

答案 2 :(得分:0)

它不会直接工作但你可以通过JavaScript中的AJAX调用来分配它们,idk真的知道它是否真的在现实世界中有任何应用程序(一个可能是服务器所期望的参数的混淆)< / p>

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

请注意代码可能不完全正确,因为我还没有测试它,但它背后的逻辑应该是不言自明的