4

ユーザーからの入力を検証するためのカスタム検証を追加する必要があります。ここに私のユースケースです: 私はこのようなローカライズで、日付を選択するためのjQueryのUIの日付ピッカーを使用しています:jquery datepickerとカスタム検証

$.datepicker.setDefaults($.datepicker.regional[ currentLocale ]);

私はbassistanceの検証プラグインを使用し、date:trueなどのルールを使用して動作しませんさまざまなフォーマット(あるいは、どうすればいいのか教えてください)。だから私はこの

$.validator.addMethod("validDate", function(value) { 
     return parseDateString(value) != null; 
    }, jQuery.validator.messages.date); 

このCompoNetをの値が変更される前に検証が発射された日付ピッカーで日付を選択するとき、すべての事実を除いて非常によく動作しますように私自身の日付の検証方法を作りました!だから、私は実際に前の値を検証します....

私のための解決策はありますか?事前に 感謝:)あなたが検証upon the user closingdatepickerポップアップを引き起こす可能性が

答えて

8

:すぐに特定のフィールドを検証することができるようになりますvalidateelement()機能を使用して

$("#birthdate").datepicker({ 
    onClose: function() { 
     /* Validate a specific element: */ 
     $("form").validate().element("#birthdate"); 
    } 
}); 

私はhereという例を作成しましたが、その年の誰かが年!= 2011の日付で検証に失敗しました。

+0

このonCloseアプローチを使用する別の方法は、動的な日付ピッカーを検証することです。ページの読み込みが完了し、datepickerが付加された入力要素が追加されると、検証メッセージはわずかに同期しなくなります。ユーザーが日付を選択せず​​に投稿を試みると、メッセージが表示されます。このシナリオで日付を選択すると、メッセージは削除されません(日付が2回選択されていない限り)。 'onClose:function(){$(this).valid();}'は、メッセージが正しく同期するようにします。 –

+0

この回答は私を大いに助けましたが、私は奇妙な発言で2,3日間立ち往生しました。 私は2つの日付ピッカーとカスタムバリデーションを使用しており、上記の方法は素晴らしいです。私はその後、JavaScript関数を通して2つを追加し、検証はたびに起動しました。 私はこれを見つけました。(http://bugs.jqueryui.com/ticket/7451)、検証後にonCloseイベントが追加されました(上の例と一致するように変更されました)。 $( "form #birthdate ").trigger(" blur "); これで動作します。 –

関連する問題