当用 bootstrap-datepicker.js 这个插件选择时间,再用jquery.validate.js进行验证,当时间不为空时则验证通过。可能由于在时间插件弹出来时,input框的值发生改变,这时候就进行了验证,所以每次进行验证的都是bootstrap-datepicker.js选中日期的前一个值,比如:默认日期为空,当第一次选中日期,假设该日期为(2019-2-22),那么本次验证的值则为空,所以验证不通过;当再次选中时间,假设这次选中时间为(2019-2-23),才有前一个值为(2019-2-22),所以验证才能通过,要想不受这个影响,应该在input框发生change事件时再验证一次表单,所以最终解决的办法如下:
1 <form id="validate"> 2 <input onchange='$("#validate").validate().element($(this));'/> 3 </form>
给input添加一个onchange事件,当表单元素发生改变时再手动触发表单验证,确保验证的是当前值