6

私はほとんどあります。 ローカライズされたjQueryのdatepickerを作成し、カスタムフォーマットのバリデーションを追加しましたが、米国の日付フォーマットのバリデーション(デフォルト?)を取り除くことはできません。jQuery datepickerによるカスタム日付形式の検証(米国日付の検証を取り除くことはできません)

私はこのように私の日付フィールドをレンダリングしています:

... 
@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の日付ピッカーコントロールをフックアップ私の日付フィールドを処理する:

$(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 });  

}); 

しかし、今私は2つの検証ルールを日付fi 、米国の日付とこのカスタム日付。

私はこのアメリカの日付規則を取り除くことができません、なぜこの$('.date').rules("remove");行はアメリカの日付規則を削除しませんか?

おかげで、

イゴール

答えて

13

あなたが代わりに新しいものを追加することで、日付の検証方法を "上書き" に試みることができる:

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

グレート、それは動作します。 – igorludi

+0

しかし、私はまだ.removeがうまくいかなかったのだろうと思っています。 – igorludi

+0

カスタム日付形式を設定しても、日付が正しく解析されなかった理由を理解するのに1時間以上を費やしました。ありがとう。 –

3
  date: function (value, element) { 

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

     }, 
関連する問題