Поэтому я только что столкнулся с этой проблемой.
Я использую JQuery UI, чтобы иметь datepicker, который "сопоставляет" с текстовым полем только для чтения:
$(document).ready(function ()
{
var dateFormatStr = 'yy/mm/dd';
$('#DateOfBirth').datepicker({
dateFormat: dateFormatStr,
minDate: '-100Y',
maxDate: '-18Y',
changeMonth: true,
changeYear: true
});
$('#DateOfBirth').attr('readonly', 'readonly');
});
И в представлении это то, что я делаю, чтобы связать его:
@Html.LabelFor(m => m.DateOfBirth)
@Html.EditorFor(m => m.DateOfBirth, new { @readonly = "readonly" })
Это отлично работает в IE.
Однако в Chrome не так много. Он дает собственное определение элемента управления выбора даты, и вы можете видеть за ним jquery-контроль! И когда вы пытаетесь установить значение, он не может этого сделать.
есть ли причина, по которой хром действует странно? Я предполагаю, что это потому, что EditorFor связывает свойство DateOfBirth, которое имеет тип DateTime.
Есть ли способ остановить это поведение? Я считаю, что у меня были проблемы, когда я использовал TextBoxFor вместо этого, и мне пришлось использовать редактор.
Большое спасибо
Я не вижу никакого Id
с вашим EditorFor
.
@Html.EditorFor(m => m.DateOfBirth, new { id="DateOfBirth", @readonly = "readonly" })
Не знаю, была ли эта проблема, вчера я работал над контрольным datepicker
и у меня не было никаких проблем. К сожалению, я не могу понять, что вы описываете как странное поведение в Chrome.