W3schools говорит, что "formenctype" работает только для типов "submit" и "image", в то время как все остальные говорят, что он используется для типов "file". W3school ошибается? - PullRequest
0 голосов
/ 21 июня 2020

https://www.w3schools.com/html/html_form_attributes_form.asp

Как видите, они говорят, что атрибут «formencstyle» работает только для следующих типов ввода: «изображение» и «отправить», но все stackoverflow говорит, что formenctype = "multipart / form-data" предназначен для использования для типов "файлов" элемента "input". Итак, почему же тогда w3schools утверждает, что этот атрибут может работать только для «submit» и «image»? Они снова устарели?

1 Ответ

2 голосов
/ 21 июня 2020

Вы что-то путаете.

«Тип кодировки» - это то, как форма должна быть закодирована при отправке на сервер. Это относится к форме в целом. Его нельзя применить к отдельным элементам. Если вы хотите загрузить файл с помощью элемента <input type="file">, ваша форма (в целом) должна быть отправлена ​​с использованием кодировки multipart/form-data.

Вы можете определить этот тип кодировки с помощью enctype="multipart/form-data" в элементе <form> или с помощью атрибута formenctype="multipart/form-data" на кнопке отправки.

Атрибут formenctype на кнопке отправки переопределяет enctype элемента <form>, когда форма отправлено с помощью этой кнопки отправки.

<form method="POST">
  <input type="submit" 
         value="Clicking me submits the form using the default `application/x-www-form-urlencoded` encoding method">
  <input type="submit" 
         formenctype="multipart/form-data"
         value="Clicking me submits the form using the `multipart/form-data` encoding method">
</form>

Вы не можете применить formenctype к элементу файла, потому что элемент файла не является кнопкой отправки, а тип кодировки не применяется к отдельным элементам.

В этом случае W3Schools не ошибается. formenctype используется для кнопок отправки, и есть два типа кнопок отправки: <input type="image"> и <input type="submit">.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...