Вопрос по html, webforms, html-form – Передаются ли данные формы, если у входного тега нет имени?

47

В целях эффективности мне интересно, если файл или текст в текстовой области все еще передается на сервер, если вы пропустите атрибут name или установите его в null. например



Я замечаю, что данные недоступны на сервере, если вы это сделаете.

Ваш Ответ

3   ответа
56

Спецификация W3C, если я правильно понимаю, требует, чтобы каждый элемент ввода формы имелname атрибут указан. В противном случае этот элемент не будет обработан.Источник

Используя валидатор W3C,input тег с нетname Атрибут действителен. Попробуйте это здесь:validator.w3.org/#validate_by_input nmit026
Точнее, только поля («контроль») которые имеютname атрибут вносить в набор данных формы. Без такого атрибута поле будет по-прежнему обрабатываться в обычном режиме, и форму можно отправить, просто без данных из этого поля. Не является ошибкой иметь поле безname приписывать. Jukka K. Korpela
@CiroSantilli 六四 事件 法轮功 纳米比亚 威 视 w3.org/TR/html5/... Nick Humphrey
Может кто-нибудь процитировать точный HTML5? Ciro Santilli 新疆改造中心996ICU六四事件
27

Я проверил это во всех браузерах - поля с пустым / отсутствующим именем отсутствуют в запросе POST / GET от браузера. Это нене имеет значения, если они имеют или неУ меня нет идентификатора (я думал, что браузеры могут использовать идентификатор для имени, но нет).

Этот конкретный эксперимент не гарантирует, что данные "не представлен" из браузера. Другое возможное объяснение вашего вывода может состоять в том, что форма отправила эти значения, но сервер не смог принять эти значения без имен. Хотя спецификации уточняют реальный случай. Izhar Aazmi
0

но вы можете назначать их через вызовы AJAX в JavaScript, 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*/

пожалуйста, обратите внимание, что код может быть не совсем правильным, так как я непроверить это, но логика должна быть самоочевидной

Похожие вопросы