一、前言
BootstrapValidator是基于bootstrap3的jquery表单验证插件,是最适合bootstrap框架的表单验证插件,在工作中用到此框架就写下自己在使用中积累的一些心得
二、问题描述
当按钮的类型为submit时,使用bootstrapValidator的isValid()能够使验证表单正常工作,但当button的type类型为button时,只调用bootstrapValidator的isValid()方法无法正常工作。这时候就需要使用bootstrapValidator的validate()方法进行激活。
三、项目代码
1、JSP中
<span style="font-size:14px;"><div id="addAdminDialog" class="modal fade" tabindex="-1"> <div class="modal-dialog cy-modal-dialog-f"> <div class="modal-content"> <div class="modal-header"> <button class="close" data-dismiss="modal"><span>×</span></button> <h4 class="modal-title" id="myLargeModalLabel">新增管理员</h4> </div> <div class="modal-body"> <form id="addAdminForm" method="post" action="${ctx}/admin/operator/add.htm" class="form-horizontal"> <div class="form-group"> <label class="form-label text-bold" for="">登录名</label> <input class="form-control" placeholder="" type="text" name="loginName" id="addLoginName"/> </div> <div class="form-group"> <label class="form-label text-bold" for="">用户名</label> <input class="form-control" placeholder="" type="text" name="userName" id="addUserName" /> </div> <div class="form-group"> <label class="form-label text-bold" for="">密码</label> <input class="form-control" placeholder="" type="password" name="password" id="addPassword" /> </div> <div class="form-group"> <label class="form-label text-bold" for="">角色</label> <div class="form-group"> <div class="col-md-10 col-xs-10"> <div class="checkbox cy-nopadding" id="addRoles"> <c:forEach var="role" items="${roles}"> <label name="addRoleLabel" class="form-checkbox form-icon form-text"><input type="checkbox" id="addRole_${role.id}" name="roles" value="${role.id}"> ${role.roleName}</label> </c:forEach> </div> </div> </div> </div> </form> </div> <!--Modal footer--> <div class="modal-footer"> <button class="btn btn-primary" onclick="addAdmin();">确定</button> <button data-dismiss="modal" class="btn btn-default" type="button">取消</button> </div> </div> </div> </div></span>
2、JS
<span style="font-size:14px;">var faIcon = { valid: 'glyphicon glyphicon-ok', invalid: 'glyphicon glyphicon-remove', validating: 'glyphicon glyphicon-refresh' } //新增管理员前台校验 $("#addAdminForm").bootstrapValidator({ message: 'This value is not valid', //反馈图标 feedbackIcons:faIcon, fields: { loginName:{ message:'登录名无效', validators:{ notEmpty:{ message:'登录名不能为空' }, StringLength:{ min:5, max:30, message:'用户名长度大于6位并且小于30位' }, regexp:{ regexp:/^[a-zA-Z0-9_]+$/, message:'用户名只能由字母、数字和下划线' } } }, userName: { message: '用户名格式不正确', validators: { notEmpty: { message: '用户名不能为空' }, stringLength: { min: 6, max: 30, message: '用户名长度大于6位并且小于30位' }, regexp: { regexp: /^[a-zA-Z0-9_]+$/, message: '用户名只能由字母、数字和下划线' } } }, password: { validators: { notEmpty: { message: '邮箱不能为空' }, emailAddress: { message: '输入的不是一个有效的电子邮件地址' } } } } });</span>
<span style="font-size:14px;">// 新增操作员 function addAdmin() { /*手动验证表单,当是普通按钮时。*/ $('#addAdminForm').data('bootstrapValidator').validate(); if(!$('#addAdminForm').data('bootstrapValidator').isValid()){ return ; } $("#addAdminForm").ajaxSubmit({ dataType : 'json', type : "post", success : function(json) { if (json.status == "succ") { doQuery(); Modal.alert({ msg : "操作成功" }); $("#addAdminDialog").modal('hide'); } else { Modal.alert({ msg : json.msg }); } }, error : function() { Modal.alert({ msg : "操作失败" }); } }); }</span>