Подтвердить что ты не робот

Form submit checkbox устанавливает значение "on", а не "true"

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

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

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

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

4b9b3361

Ответ 1

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

Поэтому простой тест, если атрибут checkbox name был отправлен, может определить, был ли он проверен или нет.

Ответ 2

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

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

Ответ 3

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

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

http://jsfiddle.net/YxZRS/