0

私は私のコードがフォローしている形式でjquery検証を使用しています

Jquery

$(document).ready(function () {
    $('#myformid').validate();
    $.validator.addMethod("endDate", function (value, element) {
        var startDate = $('.startDate').val();
        return Date.parse(startDate) <= Date.parse(value);
    }, "* End date must be Equal/After start date");



});

2つの日付をjqueryと比較しようとしています。終了日が開始日よりも大きい場合、jqueryは検証エラーを表示しますが、エラーを表示した後、有効な日付を入力すると、フォームを送信するまで検証メッセージが消えません。何が問題になるのでしょうか?

4

1 に答える 1

0

endDateのみを変更すると、検証は正しく機能するはずです(ここを参照して、フォームを送信し、endDateを修正すると、エラーメッセージが消えます)が、問題を修正するためにstartDateを変更すると問題が発生すると思います。 endDateで..。

その場合、endDatestartDateが変更されたときに検証をトリガーする必要があります。

$('input[name="startDate"]').blur(function(){
    if ($('input[name="endDate"].error').length){
        validateObject.element($('input[name="endDate"]'));
    }        
});

ifステートメントは、endDate入力がすでに「エラー」状態にあるかどうかをチェックし、そうである場合は再検証します。 validateObjectから返される検証オブジェクト$('#myformid').validate()です。

ここでそのバージョンの動作を確認できます:http: //jsfiddle.net/ryleyb/zhN6q/1/

于 2012-06-19T15:34:48.377 に答える