bootstrap之表单校验

需要引入的文件

<link href="${ctx}/business/css/bootstrapValidator.css" rel="stylesheet">
<script type="text/javascript" src="${ctx}/business/js/bootstrapValidator.js"></script>

<!-- 国际化语言 -->

<script type="text/javascript" src="${ctx}/business/js/zh_CN.js"></script>

表单jsp页面:

<form id="addBusinessForm" role="form" class="form-horizontal" action="addBusiness">
    <div class="form-group">
    <label class="col-lg-2 control-label" for="inputStandard">营业执照号<span class="text-danger">*</span></label>
    <div class="col-lg-9">
        <input type="text" name="licences" placeholder="请输入商家营业执照号" class="form-control">
    </div>
    </div>
    <div class="form-group">
    <label class="col-lg-2 control-label" for="inputStandard">商家名称<span class="text-danger">*</span></label>
    <div class="col-lg-9">
        <input type="text" name="name" id="name" placeholder="请输入商家名称" class="form-control">
    </div>
    </div>
    <div class="form-group">
    <label class="col-lg-2 control-label" for="inputStandard">商家地址<span class="text-danger">*</span></label>
    <div class="col-lg-9">
        <select class="form-control" id="province" name="province" style="width:150px;float:left;"></select>
        &nbsp;<select class="form-control" id="city" name="city" style="width:150px;float:left;display:none;"></select>
        &nbsp;<select class="form-control" id="district" name="district" style="width:150px;float:left;display:none;"></select>
        <input type="text" name="address" placeholder="详细地址" class="form-control w500">
    </div>
    </div>
    <div class="form-group">
    <label class="col-lg-2 control-label" for="inputStandard">人均消费<span class="text-danger">*</span></label>
    <div class="col-lg-5">
        <select name="per" class="form-control input-sm w100 pull-left mr20 h-40">
        <option value="1">0-50</option>
        <option value="2">50-100</option>
        <option value="3">100-150</option>
        <option value="4">150-200</option>
        <option value="5">200-250</option>
        <option value="6">250-300</option>
        </select>
    </div>
    </div>
    <div class="form-group">
    <label class="col-lg-2 control-label" for="inputStandard">摇一摇次数<span class="text-danger">*</span></label>
    <div class="col-lg-5">
        <input type="text" name="shakeDayNum" placeholder="请输入摇一摇次数" class="form-control">
    </div>
    <span class="pull-left lh40 mr10"> /每人每天</span>
    </div>
    <div class="form-group">
    <label class="col-lg-2 control-label" for="inputStandard">中奖概率<span class="text-danger">*</span></label>
    <div class="col-lg-5">
        <input type="text" name="probability" placeholder="请输入中奖概率" class="form-control">
    </div>
    </div>
    <div class="form-group">
    <label class="col-lg-2 control-label" for="inputStandard">奖品类型<span class="text-danger">*</span></label>
    <div class="col-lg-9">
        <div class="checkbox-custom checkbox-primary mb10 mr20 w100 pull-left">
        <input type="checkbox" name="allowActivity" checked="" id="checkboxExample2" value="1">
        <label for="checkboxExample2">红包</label>
        </div>
        <div class="checkbox-custom checkbox-primary mb10 mr20 w100 pull-left">
        <input type="checkbox" name="allowActivity" checked="" id="checkboxExample3" value="2">
        <label for="checkboxExample3">满减优惠</label>
        </div>
        <div class="checkbox-custom checkbox-primary mb10 mr20 w100 pull-left">
        <input type="checkbox" name="allowActivity" checked="" id="checkboxExample5" value="4">
        <label for="checkboxExample5">实物商品</label>
        </div>
        <div class="checkbox-custom checkbox-primary mb10 mr20 w100 pull-left">
        <input type="checkbox" name="allowActivity" checked="" id="checkboxExample6" value="8">
        <label for="checkboxExample6">虚拟商品</label>
        </div>
        <div class="checkbox-custom checkbox-primary mb10 mr20 w100 pull-left">
        <input type="checkbox" name="allowActivity" checked="" id="checkboxExample7" value="16">
        <label for="checkboxExample7">菜品</label>
        </div>
    </div>
    </div>
    <div class="form-group">
    <label class="col-lg-2 control-label" for="inputStandard">联系人<span class="text-danger">*</span></label>
    <div class="col-lg-5">
        <input type="text" name="linkman" placeholder="请输入商家联系人姓名" class="form-control">
    </div>
    </div>
    <div class="form-group">
    <label class="col-lg-2 control-label" for="inputStandard">手机号<span class="text-danger">*</span></label>
    <div class="col-lg-5">
        <input type="text" name="mobile" placeholder="请输入商家联系人手机号" class="form-control">
    </div>
    </div>
    <div class="form-group">
    <label class="col-lg-2 control-label" for="inputStandard">座机<span class="text-danger">*</span></label>
    <div class="col-lg-5">
        <input type="text" name="phoneNo" placeholder="请输入商家座机号码" class="form-control">
    </div>
    </div>
    <div class="form-group">
    <label for="textArea2" class="col-lg-2 control-label">备注</label>
    <div class="col-lg-9">
        <textarea rows="3" id="remark" name="remark" class="form-control"></textarea>
    </div>
    </div>
    <div class="mt40 mb20 text-center">
    <button class="btn ladda-button btn-primary" type="submit">立即开通</button>
    </div>
</form>

<script type="text/javascript">

//为表单绑定校验

$('#addBusinessForm').bootstrapValidator({
    excluded: [':disabled'],//':hidden', ':not(:visible)'//包含disabled的元素的校验
    message: '数据不合法',
    feedbackIcons: {
    valid: 'glyphicon glyphicon-ok',
    invalid: 'glyphicon glyphicon-remove',
    validating: 'glyphicon glyphicon-refresh'
    },
    fields: {
    licences: {
        validators: {
        notEmpty: {
            message: '营业执照号不能为空'
        },
        callback: {//回调函数:返回true校验通过,犯规false校验不通过,显示message信息
            message: '改营业执照号已经注册!',
            callback: function(value, validator) {
            var status = true;
            $.ajax({
                type:"post",
                async:false,
                global: false,
                url:"${ctx}/work/businessManage/checkBLN",
                data:{"licences":value},
                success:function(data){
                if(data.result == 1){
                    status =  true;
                }else if(data.result == 2){
                    //营业执照号已经注册
                    status =  false;
                }else if(data.result == 3){
                    //营业执照号在提供商中存在  显示数据
                    status =  true;
                    $("#name").val(data.data.name).attr("disabled",true);
                }
                },
                dataType:"json"
            })
            return status;
            }
        }
        }
    },
    pic: {
        validators: {
        notEmpty: {
            message: '请上传图片'
        }
        }
    },
    name: {
        validators: {
        notEmpty: {
            message: '商家名称不能为空'
        }
        }
    },
    per: {
        validators: {
        notEmpty: {
            message: '人均消费不能为空'
        }
        }
    },
    district: {
        validators: {
        notEmpty: {
            message: '商家地址不能为空'
        }
        }
    },
    address: {
        validators: {
        notEmpty: {
            message: '详细地址不能为空'
        }
        }
    },
    shakeDayNum: {
        validators: {
        notEmpty: {
            message: '每日摇一摇次数不能为空'
        },
        regexp: {
            regexp: "^[1-9][0-9]*$",
            message: '摇一摇次数必须为大于0的正整数'
        }
        }
    },
    probability: {
        validators: {
        notEmpty: {
            message: '中奖概率不能为空'
        },
        regexp: {
            regexp: "^[1-9][0-9]*$",
            message: '摇一摇次数必须为大于0的正整数'
        }
        }
    },
    linkman: {
        validators: {
        notEmpty: {
            message: '商家联系人不能为空'
        },
        regexp: {
            regexp: "^[\u4e00-\u9fa5]{2,4}$",
            message: '联系人姓名在2到4个汉字之间'
        }
        }
    },
    mobile: {
        validators: {
        notEmpty: {
            message: '手机号不能为空'
        },
        regexp: {
            regexp: "^([0-9]{11})?$",
            message: '手机号码格式错误'
        },
        callback: {
            message: '该手机已有商家使用,请换一个试试!',
            callback: function(value, validator) {
            var status = true;
            $.ajax({
                type:"post",
                async:false,
                global: false,
                url:"${ctx}/work/businessManage/checkMobile",
                data:{"mobile":value},
                success:function(data){
                if(data == 1){
                    status =  false;
                }
                },
                dataType:"json"

            })
            return status;
            }
        }
        }
    },
    phoneNo: {
        validators: {
        notEmpty: {
            message: '座机号不能为空'
        },
        regexp: {
            regexp: "^([0-9]{3,4}-)?[0-9]{7,8}$",
            message: '座机号格式错误'
        }
        }
    },
    contractNo: {
        validators: {
        notEmpty: {
            message: '合同编号不能为空'
        }
        }
    },
    desc: {
        validators: {
        stringLength: {
            max: 500,
            message: '备注长度在500字以内'
        }
        }
    }
    }
})
.on('success.form.bv', function(e) {//表单全部校验通过会提交表单到actin的地址,后台ajax返回成功还是失败状态
    e.preventDefault();
    var $form = $(e.target);
    var bv = $form.data('bootstrapValidator');
    $.post($form.attr('action'), $form.serialize(), function(data){
    if(data.result == 1){
        var id = data.id;
        //成功跳转到选择商品页面
        windows.location.href="${ctx}/work/businessManage/selectGoodsInit?bId="+id;
    }
    }, 'json');
});

</script>

后台springMVC代码:

@RequestMapping(value = "/addBusiness")
    @ResponseBody
    public Map addBusiness(ModelAndView m, YbMerchantInfo record, HttpServletRequest request, Model model, Page page) throws Exception {
        Map resultMap = new HashMap();
        try {
            //调用业务保存带卡

            resultMap.put("result", “1”);//业务操作成功
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
            System.out.println(e.getMessage());
            resultMap.put("result", 0);//业务异常
        }finally{
            return resultMap;
        }
    }

扩展:

再用$(form).bootstrapValidator(options)初始化表单校验插件后,有两种方法调用插件的方法

第一种:

// 得到插件的实例
var bootstrapValidator = $(form).data('bootstrapValidator');
// 调用插件的方法
bootstrapValidator.methodName(parameters);

例如:调用updateStatus和validateFiled方法

$(form).data('bootstrapValidator')
       .updateStatus('birthday', 'NOT_VALIDATED')//修改状态为校验不通过
       .validateField('birthday');

第二种:
$(form).bootstrapValidator(methodName, parameters);

例如:调用updateStatus和validateFiled方法

$(form)

    .bootstrapValidator('updateStatus', 'birthday', 'NOT_VALIDATED')

    .bootstrapValidator('validateField', 'birthday');

方法说明:
defaultSubmit:它还不执行任何验证当提交表单。这可能是你想提交表单时使用正确的内部自定义提交处理程序。
disableSubmitButtons:€”禁用(false)或启用(true)提交按钮。
enableFieldValidators:禁用(false)或启用(true)所有给定的字段验证器
getFieldElements:检索字段元素的名字,返回jQuery的数组元素代表,或null如果字段是没有找到
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值