Если флажок не установлен, нажатие на кнопку отправки формы не приводит к отправке данных.
Некоторые флажки могут не присутствовать в форме в зависимости от выбранных пользователем полей формы. Поэтому у контроллера submit нет возможности определить, присутствовал ли не отмеченный флажок в форме или нет.
Если база данных содержит true для этого столбца, это свойство не обновляется до false. Имя флажка совпадает с именем столбца boolean базы данных.
Как заставить форму отправить чекбоксы, которые находятся в не отмеченном состоянии, или любая другая идея, чтобы установить значение в базе данных в false, если флажок не установлен, но не изменять значение в базе данных, если флажок отсутствует в форме?
Используются jquery, jqueryui, asp.net 2 mvc
Моя форма создается динамично, так слияние дополнительных скрытых полей было бы вполне сложным. Для меня это работает путем временного изменения типа поля в отправлять обработчике формы.
myForm.addEventHandler("submit", ev => {
for (let oField of ev.target.elements) {
if (oField.nodeName.toUpperCase() === "INPUT" &&
oField.type === "checkbox" &&
! oField.checked) {
oField.type = "text"; // input type text will be sent
// After submitting, reset type to checkbox
oReq.addEventListener("loadstart",
() => { oField.type = "checkbox"; });
}
}
});
Это чувствует себя немного грязным, но работает на мой.