Html.checkboxfor возвращает ложное значение при его отключении?
Привет,
У меня есть два Html.CheckBoxFor с именами IsPackage и IsDataPoint.
Когда IsPackage проверен, то IsDataPoint также может быть проверен и доступен для пользователя, чтобы выбрать значение.
Когда IsPackage снят, IsDataPoint также должен быть проверен и отключен. Вот в чем заключается проблема, когда IsDataPoint отключен, он всегда дает ложное значение для управления при отправке формы.
Я попытался добавить скрытое поле для IsDataPoint, но оно все еще не сохраняет состояние значения.
Что я уже пробовал:
<div class="col-md-6"> <span class="checkbox" style="margin-left: 26px;"> @Html.CheckBoxFor(m => m.IsPackage, new { @id = "package-checkbox" }) <span>@Model.GetDisplayName(m => m.IsPackage)</span> </span> </div> <div class="col-md-6"> <span class="checkbox" style="margin-left: 26px;"> @Html.HiddenFor(m=>m.IsDatapointFlagging, new { @id = "datapoint-flagging-hidden" }) @Html.CheckBoxFor(m => m.IsDatapointFlagging, (Model.IsPackage ? new { @id = "datapoint-flagging-checkbox" } : (object)new { @id = "datapoint-flagging-checkbox", @disabled = "" })) <span>@Model.GetDisplayName(m => m.IsDatapointFlagging)</span> </span> </div>
Я также попытался установить скрытое значение поля при изменении IsPackage
/* Test type management */ $(document).on('change', '#package-checkbox', function () { var isPackage = $(this).is(":checked"); var datapointFlaggingCheckbox = $('#datapoint-flagging-checkbox'); var datapointFlaggingHidden = $('#datapoint-flagging-checkbox'); if (isPackage) { datapointFlaggingCheckbox.prop('disabled', false); datapointFlaggingHidden.prop('checked', datapointFlaggingCheckbox.is(":checked")); } else { datapointFlaggingCheckbox.prop('checked', true); datapointFlaggingCheckbox.prop('disabled', true); datapointFlaggingHidden.prop('checked', datapointFlaggingCheckbox.is(":checked")); } });