Отключенные поля формы, не передающие данные - PullRequest
132 голосов
/ 19 января 2012

Есть ли способ (с флагом атрибута или чем-то в этом роде) включить поля формы, которые отключены для отправки данных?

Или, если это невозможно, есть ли способ заблокировать редактирование полей с помощью css или любого другого атрибута, кроме отключенного, без их скрытия?

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

Ответы [ 6 ]

212 голосов
/ 19 января 2012

Оформить заказ только для чтения атрибута http://www.w3schools.com/tags/att_input_readonly.asp

56 голосов
/ 11 июня 2015

Элементы с атрибутом Disabled не отправлены, или вы можете сказать, что их значения не опубликованы.

т.е.

<input type="textbox" name="Percentage" value="100" disabled="disabled" /> 

К вашему сведению,

  1. Отключенные элементы управления не получают фокус.
  2. Отключенные элементы управления пропускаются при переходе по вкладкам.
  3. Отключенные элементы управления не могут быть успешно опубликованы.

Вы можете использовать атрибут readonly в вашем случае, тем самым вы сможете публиковать данные своего поля.

то есть

<input type="textbox" name="Percentage" value="100" readonly="readonly" />

FYI,

  1. Элементы только для чтения получают фокус, но не могут быть изменены пользователем.
  2. Элементы навигации только для чтения включены в навигацию по вкладкам.
  3. Элементы только для чтения успешно опубликованы.

Примечание: READONLY не работает с флажками и выбирает теги

Ссылка от

11 голосов
/ 25 июня 2017

Как уже упоминалось: READONLY не работает для <input type='checkbox'> и <select>...</select>.

Если у вас есть Form с отключенными флажками / выборками И их нужно отправить, вы можете использовать jQuery:

$('form').submit(function(e) {
    $(':disabled').each(function(e) {
        $(this).removeAttr('disabled');
    })
});

Этот код удаляет атрибут disabled из всех элементов при отправке.

5 голосов
/ 08 марта 2018

Используйте CSS-события указателя: ни один из полей, которые вы хотите «отключить» (возможно, вместе с серым фоном), что позволяет выполнять действие POST, например:

<input type="text" class="disable">

.disable{
pointer-events:none;
background:grey;
}

Ссылка: https://developer.mozilla.org/en-US/docs/Web/CSS/pointer-events

0 голосов
/ 14 мая 2019

добавить CSS или класс к элементу ввода, который работает в тегах select и text, таких как

style = "события указателя: нет; background-color: # E9ECEF"

0 голосов
/ 20 июля 2018

Мы также можем использовать только чтение только с атрибутами ниже -

readonly onclick = 'return false;'

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

...