出于效率目的,我想知道如果您省略 name 属性或将其设置为 null,textarea 中的文件或文本是否仍会传输到服务器。例如
<input type="file" id="file" name="">
<textarea id="text" name="">
我注意到如果您这样做,服务器上的数据将不可用。
如果我理解正确的话,W3C 规范要求每个表单输入元素都有一个name
指定的属性。否则,该元素将不会被处理。来源
不。
我在所有浏览器中检查了这一点 - 来自浏览器的 POST/GET 请求中缺少名称为空/缺少名称的字段。他们是否有 id 并不重要(我的想法是浏览器可能使用 id 作为名称,但没有)。
它不会直接工作,但您可以通过 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*/
请注意代码可能不完全正确,因为我没有测试它,但它背后的逻辑应该是不言自明的