簡體   English   中英

jQuery使用自定義DatePicker進行驗證

[英]Jquery Validate with Custom DatePicker

現在,我有一個自定義的日期選擇器,我正在嘗試進行驗證。 具體來說,我正在嘗試檢查startDate字段是否在endDate字段之前。

當我單擊日期選擇器並填充我的輸入字段時,需要先單擊我的字段,然后再離開該字段,消息才會出現。 我認為這是因為jquery validate正在偵聽keyup事件,而不是輸入字段中的change事件。

這是我的代碼(用咖啡寫,但我會接受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,但這不能解決問題。

謝謝

我之前所做的是掛接到datepicker的onClose事件(如果有一個,我知道jQuery UI datepicker具有onClose),然后調用類似

$("#searchForm input[name='startDateInputBox']").valid()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM