Что это означает, когда атрибут действия формы "#" (число/фунт символ/знак/символ)? - программирование
Подтвердить что ты не робот

Что это означает, когда атрибут действия формы "#" (число/фунт символ/знак/символ)?

Что означает, когда атрибутом формы action является "#" (число/фунт символ/знак/символ)?

Что происходит, когда атрибут ввода формы formaction установлен в "#"? Это предотвращает отправку ввода на сервер?

<form method="GET" action="example.php">
    <input type="text" size="20" name="text1" value="text1" formaction="#"/>
    <input type="text" size="20" name="text2" value="text2"/>
    <input type="submit" value="Submit"/>
</form>
4b9b3361

Ответ 1

Значение # в качестве ссылки на URL (как значение атрибута action или formaction или иное) является ссылкой на начало текущего базового документа. Базовый документ - это текущий документ, если не установлен тег <base href=...>.

Что происходит, зависит от ситуации. Как правило, браузер запрашивает страницу снова с частью запроса в URL-адресе (и страница загружается снова, что может означать, что выполняются сценарии на стороне клиента), но если тот же запрос использовался ранее, браузер, вероятно, использует его кеш. Более того, по мере того, как упоминается начало документа, фокус на любом элементе формы теряется, и страница может прокручиваться назад.

Итак, хотя # довольно распространен в некоторых стилях кодирования, он не является надежным; его цель лучше достигается с помощью обработчиков событий на стороне клиента.

Атрибут formaction имеет значение только для кнопок отправки. Элемент ввода текста не является кнопкой отправки, даже если он может инициировать отправку формы, поэтому здесь атрибут игнорируется.

Ответ 2

Форма представит себе (текущий URL). Я думаю, что это то же самое, что и пустое действие.

Кроме того, может быть полезно, если действие будет изменено javascript в более позднее время.

Ответ 3

Объяснено на w3schools: http://www.w3schools.com/html5/html5_form_attributes.asp

Атрибуты переопределения формы

Атрибуты переопределения формы позволяют вам переопределить некоторые из атрибуты, установленные для элемента формы.

Атрибуты переопределения формы:

formaction - переопределяет атрибут действия формы
formenctype - переопределяет атрибут enctype формы
formmethod - переопределяет атрибут метода формы
formnovalidate - переопределяет атрибут beginvalate формы
formtarget - переопределяет атрибут target формы
Примечание. Атрибуты переопределения формы работают со следующими типами:
submit и изображение.

<form action="demo_form.asp" method="get" id="user_form">
E-mail: <input type="email" name="userid" /><br />
<input type="submit" value="Submit" />
<br />
<input type="submit" formaction="demo_admin.asp" value="Submit as admin" />
<br />
<input type="submit" formnovalidate="true"
value="Submit without validation" />
<br />
</form>

Итак, вы абсолютно правы, что он переопределяет действие, но он только переопределяет тип ввода и изображение, а не текст. Таким образом, вы можете иметь 2 разных элемента представления в одной и той же форме, но могут приводить к различным типам validaton. Это то, для чего я буду использовать это.

Итак, # помещает действие на ту же страницу, а не другую.