python测试开发django-183.bootstrap-formvalidation重置校验的方法

本文探讨了在前端开发中,如何在form表单提交并重置后正确地重置数据校验的方法。作者遇到的问题是,尽管表单已经重置,但校验状态并未随之更新。解决方案是在提交成功后,先销毁当前的formValidation实例,再重新初始化校验方法,确保再次编辑时能正确进行数据校验。
摘要由CSDN通过智能技术生成

前言

form表单提交之前,需先校验数据合法性,当连续提交时,重置了form表单,校验方法也需要跟着重置

遇到问题

参考前面一篇https://www.cnblogs.com/yoyoketang/p/15745166.html,重置表单后,

表单校验并没有重置

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');
                }

再次编辑时,就会重新校验

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值