Asp.net-Mvc-3

使用 jQuery datepicker 自定義日期格式驗證(無法擺脫美國日期驗證)

  • January 2, 2013

我快到了。我創建了本地化的 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");條線不刪除美國日期規則?

謝謝,

伊戈爾

您可以嘗試“覆蓋”日期驗證方法,而不是添加新方法:

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

           try { jQuery.datepicker.parseDate('d.m.yy', value); return true; }
           catch (e) { return false; }

       },

引用自:https://stackoverflow.com/questions/6505773