天天看點

python測試開發django-183.bootstrap-formvalidation重置校驗的方法

前言

form表單送出之前,需先校驗資料合法性,當連續送出時,重置了form表單,校驗方法也需要跟着重置

遇到問題

參考前面一篇https://www.cnblogs.com/yoyoketang/p/15745166.html,重置表單後,

python測試開發django-183.bootstrap-formvalidation重置校驗的方法

表單校驗并沒有重置

formvalidation校驗

表單校驗器

// 表單校驗器
function validate_model_form(id){
    $(id).formValidation({
        message : 'This value is not valid',
        icon : {
            valid : 'glyphicon glyphicon-ok',
            invalid : 'glyphicon glyphicon-remove',
            validating : 'glyphicon glyphicon-refresh'
        },
        fields : {
            project_name: {
                message : '項目名稱校驗不通過',
                validators : {
                    notEmpty : {
                        message : '不能為空'
                    },
                    stringLength: {
                        min: 1,
                        max: 30,
                        message: '項目名稱1-30位字元' },
                    regexp: {
                        regexp:  /^[\u0391-\uFFE5A-Za-z0-9_\s]+$/,
                        message: '項目名稱不能有特殊字元'
                    }
                }
            },
            responsible_name : {
                validators : {
                    stringLength: {
                        max: 30,
                        message: '最大30位字元' },
                    regexp: {
                        regexp:  /^[\u0391-\uFFE5A-Za-z0-9_\s]+$/,
                        message: '不能有特殊字元'
                    }
                }
            },
            test_user : {
                validators : {
                    stringLength: {
                        max: 30,
                        message: '最大30位字元' },
                    regexp: {
                        regexp:  /^[\u0391-\uFFE5A-Za-z0-9_\s]+$/,
                        message: '不能有特殊字元'
                    }
                }
            },
            publish_app : {
                validators : {
                    stringLength: {
                        max: 30,
                        message: '最大30位字元' },
                    regexp: {
                        regexp:  /^[\u0391-\uFFE5A-Za-z0-9_\s]+$/,
                        message: '不能有特殊字元'
                    }
                }
            },
            project_desc : {
                validators : {

                    stringLength: {
                        max: 200,
                        message: '最大200位字元' }
                }
            }
        }
    })
}
// 頁面初始化需調用校驗方法
$(function() {
    validate_model_form('#add-model-form');
});
           

當送出過一次後,form表單初始化了,再次彈出模态框編輯時,校驗方法沒重置,于是需重置校驗

// 銷毀校驗
       $("#add-model-form").data('formValidation').destroy();
       $("#add-model-form").data('formValidation', null);
       // 重新初始化校驗 
       validate_model_form('#add-model-form');
           

寫到ajax送出成功後,success後面

var $form = $("#add-model-form");

    success: function (data) {
                if (data.code == 0) {
                    // 修改成功,收回模态框
                    $("#addModal").modal('hide');
                    // 重置form
                    $form[0].reset();
                    // 銷毀校驗
                    $form.data('formValidation').destroy();
                    $form.data('formValidation', null);
                    // 重新初始化校驗 
                    validate_model_form('#add-model-form');
                }
           

再次編輯時,就會重新校驗

python測試開發django-183.bootstrap-formvalidation重置校驗的方法