现在我有一个自定义日期选择器,我正在尝试进行验证。具体来说,我正在尝试检查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,但这不能解决问题。
由于
答案 0 :(得分:0)
我以前做过的是挂钩到datepicker的onClose事件(如果它有一个,我知道jQuery UI datepicker有onClose),然后调用类似
的东西$("#searchForm input[name='startDateInputBox']").valid()