解决bootstrap-datepicker日历插件 与bootstrapValidator验证同时使用时无效问题
发现问题
bootstrap-datepicker+bootstrapValidator,点击日期的时候,不会对input框内容检验
解决问题
文本框内容变动后触发 trigger('input') 事件,网上很多方法都提到了trigger('input') 事件,但是核心问题在于:如何监听这个文本框内容,多次尝试后,应该使用dp.change来监听。
演示效果
完整代码演示
validator版本:v0.5.3
datetimepicker:v4.17.47
版本不同,解决办法也可能不同,仅供大家参考
<div class="row">
<div class="col-xs-12">
<div class="form-group">
<div class="col-xs-1">
<label>交易日期</label>
</div>
<div class="col-xs-3">
<input type='text' class="timeInput form-control date" id='add_time' name="add_time" />
</div>
<div class="col-xs-1">
<label>————</label>
</div>
<div class="col-xs-3 ">
<input type='text' class="timeInput form-control date" id='add_time1' name="add_time1"/>
</div>
</div>
</div>
</div>
$('#add_time').datetimepicker({
format:'YYYY-MM-DD',
locale:moment.locale('zh-cn'),
}).on('dp.change', function () {
$(this).trigger('input');
});
$('#add_time1').datetimepicker({
format:'YYYY-MM-DD',
locale:moment.locale('zh-cn'),
}).on('dp.change', function () {
$(this).trigger('input');
});
$(function(){
$('#填写你的表单id').bootstrapValidator({
// 默认的提示消息
message:'This value is not valid',
// 表单框里右侧的icon
excluded: [':disabled'],//排除无需验证的控件,比如被禁用的或者被隐藏的
feedbackIcons:{
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
add_time:{
validators:{
notEmpty:{
message:'交易起始日期不能为空'
}
}
},
add_time1:{
validators:{
notEmpty:{
message:'交易结束日期不能为空'
}
}
}
}
});
$('#validateBtn').click(function(){
$('#fm').bootstrapValidator('validate');
if($("#fm").data("bootstrapValidator").isValid()){
document.getElementById("fm").submit();
}
});
})