2009-08-31 10 views
134

Это то, что я нашел firebug в firefox.значения отключенных входов не будут отправлены?

Все ли в других браузерах?

Если да, в чем причина этого?

+17

Вы можете установить атрибут 'readonly'. Например, Chrome отображает его как отключенное поле, но передает его. – peterrus

+4

Возможный дубликат [Отключенные входы формы не отображаются в запросе] (http://stackoverflow.com/questions/7357256/disabled-form-inputs-do-not-appear-in-the-request) – hazzik

ответ

129

Да, все браузеры не не должны отправлять отключенные входы, так как они доступны только для чтения.

More info (раздел 17.12.1)

Определение атрибутов

инвалиды [CI] Если установлен для контроля формы, этот логический атрибут отключает управление для ввода данных пользователя. Когда установлено, отключенный атрибут имеет следующие эффекты для элемента:

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

Следующие элементы поддерживают отключенную атрибут: BUTTON, INPUT, OPTGROUP, OPTION, SELECT, и TEXTAREA.

Этот атрибут унаследован, но локальные объявления переопределяют унаследованное значение .

Как отображаемые отключенные элементы зависят от пользовательского агента. Для примера некоторые пользовательские агенты «серые» отключили пункты меню, этикеток и т. Д.

В этом примере элемент INPUT отключен. Поэтому он не может принимать входной сигнал , и его значение не будет представлено с формой.

<INPUT disabled name="fred" value="stone"> 

Примечание. Единственный способ динамически изменять значение отключенного атрибута через скрипт.

+59

Обход проблемы: добавить элемент '' с тем же именем/значением, что и отключенный ввод. –

+0

любая информация о том, что браузер делает и который не подчиняется? – Allisone

+2

@JohnKugelman хорошая идея, но убедитесь, что вы случайно не добавили отключенный атрибут к скрытым. Я сделал это: $ ('# thingy'). Val (что угодно) .not ('[type = hidden]'). Attr ('disabled', 'disabled') –

17

Не принимаются, так как that's what it says in the W3C spec.

17.13.2 Успешные управления

Успешное управление "действительным" для представления. [snip]

  • Элементы управления, которые отключены, не могут быть успешными.

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

178

disabled Ввод не будет отправлять данные.

Используйте readonly атрибута:

<input type="text" readonly /> 

Source here

+11

, но это не работает над выбранными тегами! – shareef

+0

@shareef http://jsbin.com/diloha/1/ Как насчет этого? –

+0

@FrankFang, Хорошо, но, когда я передаю данные клиенту шаблона клипа Laravel. Это не сработает. не может отправлять данные таким образом. –

1

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