JQuery DataPicker не выбирает формат по умолчанию в MVC2 - PullRequest
0 голосов
/ 05 октября 2010

Я использую MVC2 и включил средство выбора Jquery DateTime.По какой-то причине он не использует настройки формата по умолчанию при загрузке страниц.

Модель передает дату, и я установил формат 'дд / мм / гггг', так как я не хочу времябыть отображенным.Html.editor, к которому прикреплен указатель даты, отображается в стандартном формате «мм / дд / гггг чч: мм: сс», следовательно, проверка вступает в силу с «недействительной датой», если в качестве значения модели указано «15 октября 2010»потому что стандартный формат жалуется на отсутствие «15-го» месяца.

Код из DatePicker: ...

<%= Html.TextBox("", (Model.HasValue ? Model.Value.Date.ToString("dd/mm/yyyy") :  
DateTime.Today.ToString("dd/mm/yyyy") ), new { @class = "date" }) %>

<script language="javascript" type="text/javascript">
    $(document).ready(function() {
        $("#datepicker").datepicker(
        {
            dateFormat: 'dd/mm/yy',
            defaultDate: new Date(),
            minDate: new Date()

        });
    });
</script>

Код вызова Datepicker ...

<div>
    <%=Html.LabelFor(Model => Model.StartDate)%>
    <%=Html.EditorFor(Model => Model.StartDate, new { @class = "date" }) %>
    <%=Html.ValidationMessageFor(Model => Model.StartDate, "*")%>
</div>

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 06 октября 2010

Кажется, проблема на самом деле в HTML.TextBox, а не в самом JQuery ...

Эта строка кажется проблемой,

<%= Html.TextBox("", (Model.HasValue ? Model.Value.Date.ToString("dd/MMM/yyyy") :
DateTime.Today.ToString("dd/MMM/yyyy")), new { @class = "date" })%>

Я разбилЧтобы проверить правильность работы различных элементов, выполните следующие действия ...

<div><%=  Model.HasValue %></div>
<div><%=  Model.Value.Date.ToString( "dd/MM/yyyy" )  %></div>
<div><%=  DateTime.Today.ToString("dd/MM/yyyy")%></div>

Итак, просто - эта строка в шаблоне приводит к игнорированию форматирования даты ... какие-либо предложения?

<div><%= Html.TextBox("", Model.Value.Date.ToString("dd/MM/yyyy"))%></div>
0 голосов
/ 06 октября 2010

Правильно ли вы устанавливаете идентификатор textBox, я вижу, у вас есть класс "date", но нет идентификатора.

вам также могут понадобиться файлы локализации для средства выбора даты, доступные по адресу Google

Я до сих пор не вижу в вашем javascript, где находится селектор:

$("#datepicker")

связано с вашим текстовым полем. Не должен ли селектор быть

$('.date')

Может быть, я что-то упустил.

...