繁体   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