Выпуск формата проверки даты в JQuery Mobile и MVC 3 или (MVC 4 beta) - PullRequest
1 голос
/ 19 марта 2012

Я использую MVC 4 Beta, но я верю, что это также относится к MVC 3.

У меня есть модель, определенная как:

public class MealViewModel
{
[Required]
public string Title { get; set; }
[Required]
public DateTime Date { get; set; }
public bool Type { get; set; }
}

Я полностью прочитал JQMдокументация и настройка страницы JQM правильно.У него есть div с data-role = "page" и т. Д. На этой странице есть форма.В этой форме поле типа даты.Ниже приведен фрагмент из формы.

<div class="editor-label">
@Html.LabelFor(model => model.Date)
</div>
<div class="editor-field">
@Html.TextBox("Date",null,new{type="Date"})
@Html.ValidationMessageFor(model => model.Date)
</div>

Я тестирую страницу на iphone, она отлично выглядит и отлично работает.Когда все поля не заполнены, я отправляю форму, и, как и ожидалось, она проверяет необходимые поля.Что особенно приятно в JQM, так это то, что когда я касаюсь поля ввода даты, он автоматически открывает клавиатуру ввода даты iphone и вводит сегодняшнюю дату, чтобы начать.Это замечательно.Я принимаю дату и повторно отправляю форму.

Теперь я столкнулся с проблемой проверки.Оно отображает сообщение «Поле Date должно быть датой». Формат даты в IOS - «16 марта 2012 г. При проверке JQuery необходимо ожидать дату в другом формате.

Как изменитьформат так, чтобы "16 марта 2012" была действительной датой? Изменение должно работать с MVC.

Пожалуйста, помогите. Спасибо.

Ответы [ 2 ]

1 голос
/ 25 мая 2012

Попробуйте изменить это в своем jquery.validate.js

Orignal ->

return this.optional(element) || !/Invalid|NaN/.test(new Date(value));

Правильно ->

var d = new Date();
return this.optional(element) || !/Invalid|NaN/.test(new Date(d.toLocaleDateString(value)));

Браузер неопределить текущую дату, и это известная ошибка

0 голосов
/ 12 апреля 2012

Похоже, вам нужно кормить в формате, я столкнулся с подобной проблемой, вот код из моего шаблона редактора dateTime.

обратите внимание, что он использует: http://dev.jtsage.com/cdn/datebox/latest/jquery.mobile.datebox.min.js

@model System.DateTime
@{
    var id = this.ViewData.TemplateInfo.GetFullHtmlFieldId("");
    var name = this.ViewData.TemplateInfo.GetFullHtmlFieldName("");


    <input name="@name" id="@id" type="date" data-role="datebox" data-options='{"mode": "flipbox","noButtonFocusMode": true, "dateFormat": "DD/mm/YYYY"}' value="@Model.Date.ToShortDateString()">
    }

Если вы поиграете с форматом даты, он должен соответствовать вашим потребностям.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...