laydate时间插件点击跟换日期过后bootstrapValidator表单二次验证失败的问题

    技术2026-08-17  17

    项目中的表单验证插件使用的是 bootstrapValidator

    日期选择插件使用的是laydate

    在点击submit进行laydate非空验证后(如图1),更换日期(如图2),不会再次触发bootstrapValidator验证

    图1

    图2

     

    问题的根本就是:bootstrapValidator不会校验已经校验过的表单(网上的思路,我没有研究,本着解决问题的初衷)

    解决办法:初始化laydate的时候,在laydate的done回调方法中单独在对时间字段进行验证:

    laydate.render({ elem: '#enterTime', istime: true, format: 'yyyy-MM-dd', theme: '#33cabb', done: function () { reValidateField("enterTime", "signupForm"); } }); /** * 单独校验某个字段 是否非空 * @param fieldId * @param formId */ function reValidateField(fieldId,formId) { //校验之前重置某个验证字段验证规则 $("#"+formId).data("bootstrapValidator").updateStatus(fieldId, "NOT_VALIDATED", null ); //单独校验这个field $("#"+formId).data('bootstrapValidator').validateField(fieldId); }

    解决后的效果:

    Processed: 0.008, SQL: 9