Я создаю приложение jQuery Mobile (Alpha 3) на основе ASP.NET MVC 3, используя ненавязчивую проверку, которая поставляется с MVC3. Когда к странице обращаются напрямую (без хеша в URL-адресе), валидация работает отлично. Однако, когда вы переходите на страницу, jQuery Mobile использует Ajax Navigation для динамической загрузки (отображение хэша в Url), и проверка перестает работать.jQuery Мобильная и ненавязчивая проверка
Вот пример кода в использовании:
Модель:
[Required(ErrorMessage = "Missing value")]
[DisplayName("Property Display Name")]
public int? PropertyName { get; set; }
View (Razor):
@Html.LabelFor(model => model.PropertyName)
@Html.TextBoxFor(model => model.PropertyName)
@Html.ValidationMessageFor(model => model.PropertyName)
Сгенерированный HTML:
<label for="PropertyName">Property Display Name</label>
<input data-val="true" data-val-number="The field Property Display Name must be a number." data-val-required="Missing value" id="PropertyName" name="PropertyName" type="text" value="" />
<span class="field-validation-valid" data-valmsg-for="PropertyName" data-valmsg-replace="true"></span>
Возможно, что ранее были загружены другие страницы, и элементы HTML больше не имеют уникальных идентификаторов. Помимо переноса собственного класса Html Helper для генерации HTML для Label, TextBox и ValidationMessage, есть ли способ справиться с этим сценарием?
Я удивлялся уникальных идентификаторов с JQM и она по-прежнему беспокоит меня. Авторы JQM сами не говорят об этом. Я даже видел пример поддерживающих нижних колонтитулов, где идентификаторы дублировались. Я вижу два решения: либо самостоятельно заботиться о своих идентификаторах, либо уничтожать кеширование JQM, принудительно удаляя страницу, которую вы оставляете из DOM, когда загружается новая, - событие 'pagebeforecreate' – naugtur
У нас похожие проблемы, Это вообще не работало. Мы находимся на jQ 1.5 и jQM 1.03a. Борясь здесь .. – pavsaund