Флажок отправки формы устанавливает значение «on», а не «true» - PullRequest
21 голосов
/ 08 февраля 2012

Привет, у меня есть HTML-форма, которую я отправляю через событие нажатия кнопки.Событие запускает $ ("# myform"). Submit ();проблема в том, что в форме есть флажок, а в firebug под опубликованными параметрами отображается «mycheckbox1 on», а не ожидаемое «mycheckbox1 true».

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

В любом случае, когда данные поступают на сервер, сервер не видит значение «on» как логическое значение и, следовательно, игнорирует его.

Любое понимание будет с благодарностью.

Ответы [ 3 ]

21 голосов
/ 08 февраля 2012

Установленный флажок просто отправляет свой атрибут value. Не отмеченный флажок не отправляет себя в форме.

Таким образом, простой тест, если атрибут флажка name был опубликован, может определить, был ли он установлен или нет.

6 голосов
/ 08 февраля 2012

Да, разные браузеры могут по-разному обрабатывать флажки, если значение не установлено.

Вы можете явно установить для атрибута значения флажка значение «true», поскольку ваш сервер понимает его, когда флажок установлен, и он отправляется на него. Как подсказал Алекс в своем ответе, флажок не будет отправлен, если он не отмечен, поэтому я предполагаю, что в этом случае для сервера будет установлено значение false.

1 голос
/ 08 февраля 2012

Попробуйте выбрать или отправить значение checked в форме:

$("input:checked").val()

http://jsfiddle.net/YxZRS/

...