form表单提交之前,需先校验数据合法性,当连续提交时,重置了form表单,校验方法也需要跟着重置
参考前面一篇https://www.cnblogs.com/yoyoketang/p/15745166.html,重置表单后,
表单校验并没有重置
表单校验器
// 表单校验器 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'); }
再次编辑时,就会重新校验