Пользовательский экран выбора даты в Jquery-ui "поле должно быть действительной датой" - PullRequest
1 голос
/ 28 марта 2012

У меня проблема, когда я использую обязательное поле с настройкой даты. Если я нажимаю на следующую кнопку, в поле настраиваемой даты принятия решения отображается «поле должно быть действительной датой». Если я изменю формат даты в датере, например, так: «dateFormat:« d / m / yy »», это будет работать, но я бы хотел отображать только месяц и годы, а не дни. Спасибо за вашу помощь.

Мой взгляд:

    <script>
        $(document).ready(function () {
            $(".DatepickerMonthYears").datepicker({
                    changeMonth: true,
                changeYear: true,
                showButtonPanel: true,
                dateFormat: 'm/yy',
                required: false,
                onClose: function(dateText, inst) { 
                    var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
                    var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
                    $(this).datepicker('setDate', new Date(year, month, 1));
                }
            });


            $(".DatepickerMonthYears").focus(function () {
                $(".ui-datepicker-calendar").hide();
                $("#ui-datepicker-div").position({
                    my: "center top",
                    at: "center bottom",
                    of: $(this)
                });
            });
            });
    </script>

@using (Html.BeginForm("Action", "Controller", FormMethod.Post, new { id = "FormAction" }))
{
@Html.ValidationSummary(true)
<fieldset>
<legend>Create </legend>
<div id="tabs">
    <ul>
        <li><a href="#tabs-1">Step1</a></li>

    </ul>
    <div id="tabs-1">
        @Html.Partial("Step1", Model)
    </div>

    <div class="buttonNextPrevious">
        <a id="previous" class="linkLikeButton" href="#">Previous Step</a>
        <a id="next" class="linkLikeButton" href="#">Next Step</a>
    </div>
</div>


</fieldset>    
}

Мое частичное представление:

@model SiteWebEmpty.Models.ArticleRequest.CreateArticle.DisplayCreateAllStep

<fieldset>
<legend>Step 1</legend>
                @Html.LabelFor(model => model.Step1.CustomerDecisionDate, new { @class = "LabelStep1" })
                @Html.TextBoxFor(step1 => step1.Step1.CustomerDecisionDate, new { @class = "DatepickerMonthYears" })
                @Html.ValidationMessageFor(model => model.Step1.CustomerDecisionDate)
                <br />
</fieldset>

Моя модель:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.ComponentModel.DataAnnotations;
using SiteWebEmpty.Models.AttributValidation;


namespace SiteWebEmpty.Models.Step1
{
    public class Step1
    {
        [Display(Name = "Customer Decision Date")]
        public DateTime CustomerDecisionDate { get; set; }

    }
}

UPDATE

Решение по этой ссылке: jQuery UI DatePicker для отображения только месяца и года с постом "Эрик Полдер" работает, но если я изменю формат даты "гг-мм" на "мм- / гг), у меня та же ошибка: /

UPDATE2 Я нашел решение, добавляю скрипт, чтобы он работал Сценарий: jquery.ui.datepicker-fr.js

1 Ответ

0 голосов
/ 30 марта 2012

Попробуйте ...

$('.DatepickerMonthYears').datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'MM yy',
        onClose: function(dateText, inst) { 
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));
        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...