#html #asp.net-mvc
#HTML #asp.net-mvc
Вопрос:
У меня странная ошибка в моем коде. У меня есть страница просмотра, на которой будет отображаться динамический список элементов, подлежащих переименованию. У меня есть модель представления, которая содержит несколько списков с некоторыми целыми числами идентификаторов, старым именем и новым именем. Я использую цикл for в представлении для создания метки и текстового поля для каждого элемента. Рядом с текстовым полем также есть флажок, который позволяет пользователю не переименовывать этот элемент. У этого флажка есть onclick для переключения отключенного свойства этого текстового поля.
<%for (int i = 0; i < Model.ChargeIds.Count; i )
{ %>
<div style="clear:left; float:left; margin-right:10px">
<label><%=Model.OldChargeNames[i]%></label>
<div class="editor-field">
<%=Html.TextBoxFor(m => m.NewChargeNames[i])%>
<%=Html.CheckBoxFor(m => m.DoNotCopyFlags[i], new { onclick = "toggleElement('NewChargeNames_" i "_')" })%>
<label>Don't Copy</label>
</div>
</div>
<%} %>
<script type="text/javascript">
function toggleElement(element) {
document.getElementById(element).disabled = !document.getElementById(element).;
};
</script>
Все работает нормально, пока я не устанавливаю флажок рядом с первым элементом в списке, а затем отправляю. Мой список ‘NewChargeNames’ возвращает значение null. Этого не произойдет, если я отключу любое из других текстовых полей, только первое. Я изменил свою функцию переключения, чтобы просто изменить стиль текстового поля, чтобы оно выглядело отключенным, что пока работает нормально. Но я понятия не имею, почему возникает эта ошибка, кто-нибудь может пролить свет?
Комментарии:
1. document.getElementById(элемент). отключено = !document.getElementById(элемент).; должно заканчиваться на .отключено, я предполагаю?
2. да, извините, неудачная работа по копированию и вставке : (
Ответ №1:
IE не будет отправлять значения формы для отключенных элементов управления. Я сталкивался с этой ситуацией много раз, и у меня есть два обходных пути:
- повторно включите отключенные элементы управления в событии onsubmit формы.
- поместите значение отключенного элемента управления в скрытое поле формы.
Я не думаю, что это столько «ошибка», сколько функция того, как IE обрабатывает поля формы различных состояний.
Комментарии:
1. Дело не в том, что мне нужно значение отключенного элемента, но наличие первого элемента в отключенном текстовом поле приводит к тому, что весь список возвращается нулевым. Меня смутило, что отключенный другой элемент все еще работал, например, второй. Спасибо за предложение, я думаю, что попробую первое, оно кажется лучшим решением, чем мое решение на основе css.