bootstrapValidator 的隐藏域验证
- bootstrapValidator默认配置对于“隐藏域(:hidden)、禁用域(:disabled)、不可见域(:not (visible))”是不进行验证的。
解决方法:
$("form").bootstrapValidator({
//excluded:[":hidden",":disabled",":not(visible)"] ,//bootstrapValidator的默认配置
excluded:[":disabled"],//关键配置,表示只对于禁用域不进行验证,其他的表单元素都要验证
fields: {
...
}
});
我们对隐藏域赋值,例如我们选择商品的时候,表面上显示的商品名称,代码中我们会对商品id的隐藏域赋值
$(“input[name=’goodsId’]”).val(data.goodsId);
bootstrapValidator这个插件不能捕获这样的“程序赋值事件”,所以这里不能达到验证的效果。
解决办法:
赋值之后触发一次“change”事件
$("input[name='goodsId']").val(data.goodsId).change();
修改bootstrapValidator验证代码
$("form").bootstrapValidator({
excluded:[":disabled"],
fields: {
goodsId: {
trigger:"change", //关键配置
validators: {
notEmpty: {
message: '请选择一个商品'
}
}
}
}
});
另外的解决办法
定义一个样式,使控件可见面积为0
input.validate_hidden { position:absolute; height:0; width:0; border:0; }
给控件加上此样式,使其等同于隐藏表单的效果
<input name="goodsName" type="text"/>
<input name="goodsId" class="validate_hidden">
还没有评论,来说两句吧...