現在、検証を行おうとしているカスタムの日付ピッカーがあります。具体的には、startDateフィールドがendDateフィールドの前にあるかどうかを確認しようとしています。
日付ピッカーをクリックして入力フィールドに入力するときは、メッセージが表示される前に、フィールドをクリックしてからフィールドから離れる必要があります。これは、jquery validateが入力フィールドの変更イベントではなく、キーアップイベントをリッスンしているためだと思います。
これは私のコードです(コーヒーで書かれていますが、JavaScriptの回答を受け入れます)-
validateSearchForm:=>
$(@el).find("#searchForm").validate({
rules:{
startDateInputBox:{
dateISO:true,
lessThan: true
},
endDateInputBox:{
dateISO:true
lessThan: true
}
searchPurposeBox:"required"
}
});
未満-
jQuery.validator.addMethod "lessThan", ((value, element) ->
validDateFormat = /(\d{4})-(\d{2})-(\d{2})/
startDateInput = $("#startTime").val()
endDateInput = $("#endTime").val()
startDateMatch = startDateInput.match(validDateFormat)
endDateMatch = endDateInput.match(validDateFormat)
startDateYear = startDateMatch[1]
startDateMonth = startDateMatch[2]
startDateDay = startDateMatch[3]
endDateYear = endDateMatch[1]
endDateMonth = endDateMatch[2]
endDateDay = endDateMatch[3]
startDate = new Date(startDateYear,startDateMonth,startDateDay)
endDate = new Date(endDateYear,endDateMonth,endDateDay)
if endDate < startDate
return false
return true
), "Start time has to be before end time"
日付ピッカーをクリックしてフィールドに間違った値を入力すると、エラーメッセージがすぐに表示されるようにするにはどうすればよいですか?onkeyupを試しましたが、問題は解決しません。
ありがとう