为了提高效率,我想知道如果省略name属性或将其设置为null,textarea中的文件或文本是否仍会传输到服务器。例如
<input type="file" id="file" name="">
<textarea id="text" name="">
我注意到,如果您这样做,数据在服务器上不可用。
答案 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*/
请注意代码可能不完全正确,因为我还没有测试它,但它背后的逻辑应该是不言自明的