Глобально переопределить атрибут типа по умолчанию для <button> - PullRequest
0 голосов
/ 31 марта 2020

Согласно W3 Schools ( Ссылка 1 Ссылка 2 ), атрибут type тега <button> по умолчанию равен 'submit' для большинства браузеров. Я хочу изменить это для своего веб-сайта, поэтому всякий раз, когда я пропускаю атрибут type для <button>, вместо него по умолчанию используется type='button'.

Я написал следующее Javascript и поместил его в файл, включенный во все веб-страницы:

$(function() {

  // Select all buttons without a type explicitly set, and give them a default type.
  $('button:not([type])').prop('type', 'button');

});

Конечно, это не очень удачное решение. Любые элементы <button>, которые я динамически генерирую без явной установки типа, по умолчанию будут равны type='submit' (для большинства браузеров).

Есть ли какое-то другое решение для этого? Может быть, какой-нибудь тег <meta>, который я могу использовать?

EDIT: Есть другое решение.

Моя страница была настроена с элементом <form>, окружающим большинство страницы. Затем внутри формы было <button>, предназначенное для динамического создания текстовых полей, которые сами были подключены к <input type='hidden'> через некоторые Javascript волхвы c. У меня также было несколько нормальных, stati c <input type='text'>, разбросанных по всей странице и предназначенных для отправки вместе с формой. Единственное истинное значение <button type='submit'> находится внизу страницы.

Я могу реструктурировать свою страницу таким образом, чтобы <form> только окружал <button> внизу страницы, а затем перехватывать во всех элементах, которые я хочу включить в представление, используя их свойство form, например:

<button>Generate dynamic textbox</button>
<!-- Generated textboxes go here... -->
<input type='hidden' name='dynamicTextboxAccumulation' form='breakfast_menu'>

<input type='text' name='order' value='spam' form='breakfast_menu'>

<form id='breakfast_menu' action='/order/place' method='post'>
  <button type='submit'>Place Order</button>
</form>

1 Ответ

0 голосов
/ 31 марта 2020

Я обычно пишу лучшие ответы, чем этот, так что прости меня за это ...

Нет.

Любой атрибут элемента HTML и его значение оставлено на усмотрение браузера для интерпретации. , Единственный вариант - явно установить type.

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