I am using the bootstrap datepicker from here and the bootstrap validator from here. Also I am using bootstrap v3.1.1.
After selecting a date from datepicker the validator does not react. It works just when I use the keyboard to enter a date.
Here is my HTML code:
<form id="myForm" method="POST">
<div class="col-lg-3">
<div class="form-group">
<input name="endDate" type="text" class="datepicker form-control">
</div>
</div>
</form>
In .js file I added:
$(document).ready(function () {
$('.datepicker').datepicker();
)};
and for validators:
$(document).ready(function () {
$('#myForm').bootstrapValidator({
feedbackIcons: {
valid: 'glyphicon glyphicon-ok',
invalid: 'glyphicon glyphicon-remove',
validating: 'glyphicon glyphicon-refresh'
},
fields: {
endDate: {
validators: {
date: {
format: 'DD/MM/YYYY',
message: 'The format is dd/mm/yyyy'
},
notEmpty: {
message: 'The field can not be empty'
}
}
}
}
});
});
When using BootstrapValidator with Bootstrap-datetimepicker or Bootstrap-datepicker, you should revalidate the date field.
So you should add this:
1) using with bootstrap-datetimepicker :
$('.date')
.on('dp.change dp.show', function(e) {
// Revalidate the date when user change it
$('#myForm').bootstrapValidator('revalidateField', 'endDate');
});
2) using with bootstrap-datepicker :
$('.datepicker')
.on('changeDate show', function(e) {
// Revalidate the date when user change it
$('#myForm').bootstrapValidator('revalidateField', 'endDate');
});
See the datetimepicker example for more information.
Somehow, after selecting a date, datepicker() loses focus of the date field and none of the validator plugins can see the date input field as filled (valid). As a conclusion, a simple .focus() does the trick.
$('#datefield').datepicker({
//datepicker methods and settings here
}).on('changeDate', function (e) {
$(this).focus();
});
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With