laydate時間插件點擊跟換日期過後bootstrapValidator表單二次驗證失敗的問題

項目中的表單驗證插件使用的是 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);
}

解決後的效果:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章