以datepicker的imageOnly为例,每次点击图片显示日期下拉菜单时datepicker会触发一个focus事件,当选定日期之后会触发一个focus out事件。如果用jquery validation来验证,在选定日期之后validation就会对上一次输入或者默认值进行验证,这显然不符合我们的需求。要实现对每次输入的日期进行验证,可以采用下面的方法:
beforeShow: function(input, inst) {
$(this).rules("remove");
},
onSelect: function(dateText, inst) {
$(this).rules("add", {...});
if($(this).attr("id") == "...") {
$("#...").focus();
$("#...").blur();
}
if($(this).attr("id") == "...") {
$("#...").focus();
$("#...").blur();
}
},
onClose: function(dateText, inst) {
$(this).rules("add", {... });
this.focus();
this.blur();
}
beforeShow,onSelect,onClose都是datepicker的event,通过在不同的event中触发不同的时间或rule,从而实现对本次输入值的验证。