【问题标题】:Custom date format validation with jQuery datepicker (can't get rid of US date validation)使用 jQuery datepicker 自定义日期格式验证(无法摆脱美国日期验证)
【发布时间】:2011-06-28 11:34:32
【问题描述】:

我快到了。 我创建了本地化的 jQuery 日期选择器,添加了自定义格式验证,但无法摆脱(默认?)美国日期格式验证。

我正在像这样呈现我的日期字段:

...
@Html.EditorFor(m => m.JobDate)
@Html.ValidationMessageFor(m => m.JobDate)
...

HTML 看起来像这样:

<input class="date hasDatepicker" data-val="true" data-val-required="The JobDate field is required." id="JobDate" name="JobDate" value="28.6.2011" type="text"> 
<span class="field-validation-valid" data-valmsg-for="JobDate" data-valmsg-replace="true"></span>

最后,我连接(在我的 javascript 文件中)一个 jQuery datepicker 控件来处理我的日期字段:

$(document).ready(function () {
   jQuery.validator.addMethod(
         "hrDateValidator",
         function(value, element) {
               try { jQuery.datepicker.parseDate( 'd.m.yy', value); return true; }
               catch(e){return false;}
            },
            "Datum nije u formatu d.m.gggg"
         );

   $('.date').datepicker({ dateFormat: "d.m.yy" });
   $.datepicker.setDefaults($.datepicker.regional["hr"]);
   $('.date').rules("remove");
   $('.date').rules("add", { hrDateValidator: true });      

});

但是,现在我在日期字段上有两个有效的验证规则,美国日期和这个自定义日期。

我无法摆脱这个美国日期规则,为什么这$('.date').rules("remove"); 行不删除美国日期规则?

谢谢,

伊戈尔

【问题讨论】:

    标签: asp.net-mvc-3 razor jquery-validate jquery-ui-datepicker


    【解决方案1】:

    您可以尝试“覆盖”日期验证方法,而不是添加新方法:

    jQuery.validator.methods["date"] = function (value, element) { ... } 
    

    【讨论】:

    • 我只花了一个多小时才弄清楚为什么它没有正确解析日期,尽管我设置了自定义日期格式。谢谢。
    【解决方案2】:
             date: function (value, element) {
    
                try { jQuery.datepicker.parseDate('d.m.yy', value); return true; }
                catch (e) { return false; }
    
            },
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-22
      • 1970-01-01
      • 1970-01-01
      • 2012-12-18
      • 2018-10-21
      • 2010-10-05
      • 1970-01-01
      相关资源
      最近更新 更多