我有一个带有日期选择器输入字段的表单,即使在选择日期之后也会询问值。
注意:当我输入值时,不会出现此错误。
<input data-parsley-trigger="change" name="epa_date" required type="text" class="form-control" id="single_cal1" placeholder="(YYYY/MM/DD)">
<script>
$('#single_cal1').daterangepicker({
singleDatePicker: true,
minDate: moment(),
format: 'YYYY/MM/DD',
maxDate: moment().add(15, 'days'),
calender_style: "picker_1"
}, function (start, end, label) {
console.log(start.toISOString(), end.toISOString(), label);
});
</script>
编辑注意:我已经更新了我使用的日期选择器的脚本。 我正在使用Parsleyjs进行所有验证。
答案 0 :(得分:6)
我遇到了bootstrap-datepicker的问题,这解决了我的问题:https://bootstrap-datepicker.readthedocs.io/en/latest/events.html
$('#datefield').datepicker()
.on('changeDate', function(e) {
$(this).parsley().validate();
});
答案 1 :(得分:2)
试试这个,我在daterangepicker中再次触发了欧芹。它对我有用。
<input data-parsley-trigger="change" name="epa_date" required type="text" class="form-control" id="single_cal1" placeholder="(YYYY/MM/DD)">
<script>
$('#single_cal1').daterangepicker({
singleDatePicker: true,
minDate: moment(),
format: 'YYYY/MM/DD',
maxDate: moment().add(15, 'days'),
calender_style: "picker_1"
}, function (start, end, label) {
$('#single_cal1').parsley().validate();
console.log(start.toISOString(), end.toISOString(), label);
});
</script>
希望有所帮助......
答案 2 :(得分:2)
初始化欧芹时,将更改添加到triggerAfterFailure,因此当您选择一个日期或更改日期时,欧芹将重新生效。输入的是afterAfterFailure。
$('form.parsley').parsley({
triggerAfterFailure: 'input change'
});
答案 3 :(得分:1)
我正在使用DatePicker和Parsley 2.0,这对我有用(感谢@siva anand)..
$(function() {
$("#yourdatefield").datepicker({
dateFormat: 'yy-mm-dd',
onClose: function () {
$(this).parsley().validate();
}
});
然后在欧芹领域..
'data-parsley-trigger' => 'change focusout',
答案 4 :(得分:0)
根据this bug report,看起来必须在更改时手动触发验证。以下对我有用:
var d = $('#single_cal1');
d.daterangepicker({
onClose: function() {
d.validate();
}
});