0

現在、検証を行おうとしているカスタムの日付ピッカーがあります。具体的には、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を試しましたが、問題は解決しません。

ありがとう

4

1 に答える 1

0

私が以前に行ったことは、datepickerのonCloseイベントにフックし(もしあれば、jQuery UIのdatepickerにonCloseがあることを知っています)、次のようなものを呼び出します

$("#searchForm input[name='startDateInputBox']").valid()
于 2012-11-22T18:13:10.800 に答える