JQuery Datepicker не будет публиковать с датой в Великобритании - PullRequest
5 голосов
/ 15 ноября 2011

Извиняюсь, если вопрос очевиден, но я не могу понять, почему он вдруг не работает.У меня есть jquery DatePicker, который работает хорошо, сколько я себя помню, но внезапно, когда я пытаюсь отправить форму, что DatePicker на DatePicker появляется снова, как будто дата, которую я отправляю, является недействительным.Я уже установил дату в стиле uk, используя следующую строку кода:

    <script type="text/javascript">
    $(document).ready(function () {
        $('.date').datepicker({ dateFormat: "dd/mm/yy", minDate: 0 });

    }); 
    </script>

И я настроил средство выбора даты в моем представлении следующим образом:

@Html.TextBox("DateDue", "", new { @class = "date" })

Я думаю, что-тотребует, чтобы выбранная строка даты была в формате США (поскольку она будет предоставлять действительную дату в США (мм / дд / гггг), но не в формате Великобритании, даже если она была задана в javascript.

Я пропустилчто-нибудь очевидное? Может кто-нибудь сказать мне, что я делаю здесь не так?

Не уверен, если это необходимо, но форма, на которой работает средство выбора даты, создается следующим образом:

@using (
    Html.BeginForm(
        Html.BeginForm(
            "Create",
            "Task",
            FormMethod.Post,
            new { id = "taskCreateForm" }
        )
    )
)

PS. Datestring на самом деле работает и публикует без проблем в Firefox, но не в Chrome

Любая помощь приветствуется

РЕДАКТИРОВАТЬ:

Проблема исчезает, когда я отключаю ненавязчивый JSпроверка:

<script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")"
        type="text/javascript"></script>

У меня было чувство, что это как-то связано с этим, и я попытался удалить [Required] и [DataType (DataType.Date)] из аннотации модели, но это не помогло.

Не суКак оставить ненавязчивый js, так как строка даты uk работает нормально, но я все больше и больше собираюсь написать свою собственную проверку javascript для форм, чем даже беспокоиться о встроенном материале, который, кажется, никогда не работает ни для чегоболее сложная, чем «обязательная» проверка правильности ..

Ответы [ 3 ]

2 голосов
/ 15 ноября 2011

Вы можете использовать dateFormat, поэтому в вашем файле javascript (после загрузки страницы и т. Д.) Вы можете разместить:

$('.datepicker').datepicker({dateFormat:'yy-mm-dd'});
2 голосов
/ 15 ноября 2011

поиск в Google дал много результатов, связанных с локализацией / глобализацией проверки asp.net mvc 3.

Эта статья, в частности, может быть о чем-то:

http://www.hanselman.com/blog/GlobalizationInternationalizationAndLocalizationInASPNETMVC3JavaScriptAndJQueryPart1.aspx

прокрутите вниз до: «Глобальная ненавязчивая проверка jQuery»

также может помочь ответ на этот вопрос: Локализация проверки jquery с помощью asp.net mvc 3

jQuery позволяет вам переопределить различные функции проверки, например:

 $.validator.methods.number = function (value, element) {
     return !isNaN($.parseFloat(value));
 }

вы можете сделать что-то подобное для средства проверки даты и запустить его для regEx для действительной даты в Великобритании.

1 голос
/ 15 ноября 2011

Попробуйте вместо этого использовать altFormat!

altFormat: "dd/mm/yy",      

Это работает для меня:)

РЕДАКТИРОВАТЬ: попробуйте это на JSFiddle http://jsfiddle.net/adover/BRfcK/

...