1

我使用 jquery 验证并有一个日期字段,使用 jquery 我将 datepicker 应用到编辑字段:

HTML:

        <p>@Html.TextBoxFor(m => m.rol.fecha_expiracion, new { @id = "AdmPermfechaHastaNuevoRol" })
            @Html.ValidationMessageFor(m => m.rol.fecha_expiracion)

脚本:

    $(function () {
    $("#AdmPermfechaHastaNuevoRol").datepicker({
        changeMonth: true,
        changeYear: true,
        minDate: 0
    });
});

现在我来自阿根廷,我需要格式化我的日期字段,所以我有一个脚本来更改 datepiker 格式:

jQuery(function ($) {
    $.datepicker.regional['es'] = {
        closeText: 'Cerrar',
        prevText: '<Ant',
        nextText: 'Sig>',
        currentText: 'Hoy',
        monthNames: ['Enero', 'Febrero', 'Marzo', 'Abril', 'Mayo', 'Junio', 'Julio', 'Agosto', 'Septiembre', 'Octubre', 'Noviembre', 'Diciembre'],
        monthNamesShort: ['Ene', 'Feb', 'Mar', 'Abr', 'May', 'Jun', 'Jul', 'Ago', 'Sep', 'Oct', 'Nov', 'Dic'],
        dayNames: ['Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado'],
        dayNamesShort: ['Dom', 'Lun', 'Mar', 'Mié', 'Juv', 'Vie', 'Sáb'],
        dayNamesMin: ['Do', 'Lu', 'Ma', 'Mi', 'Ju', 'Vi', 'Sá'],
        weekHeader: 'Sm',
        dateFormat: 'dd/mm/yy',
        firstDay: 1,
        isRTL: false,
        showMonthAfterYear: false,
        yearSuffix: ''
    };
    $.datepicker.setDefaults($.datepicker.regional['es']);
});

我遇到的问题是,当我使用 chrome 在我的表单上使用 jqueryu 验证并尝试发布表单时,我收到一个验证错误(jquery 验证错误),上面写着“fecha_expiracion ust be a date”

正如您从 datepiker 配置脚本中看到的那样,我将日期格式化为:'dd/mm/yy'

这就是问题所在,如果我输入的日期类似于 2012 年 10 月 5 日是可以的,但如果我输入的是 2012 年 5 月 25 日 BUM !!! 所以我想正在尝试将日期解析为json mm/dd/yy,有没有人知道如何解决这个问题?有什么想法或方向吗?tks

编辑:我试试这个 http://www.codeproject.com/Tips/579279/Fixing-jQuery-non-US-Date-Validation-for-Chrome 只得到这个:

ncaught RangeError:无效的语言标签:24/07/2013

4

1 回答 1

1

在这里您可以找到类似的问题描述解决方法

或者,您可以使用 jQueryUI Datepicker 验证插件。

于 2013-07-22T18:19:23.433 回答