Parsleyjs日期验证不适用于像Onchange

时间:2015-10-24 04:59:44

标签: javascript jquery validation datepicker parsley.js

我有一个带有日期选择器输入字段的表单,即使在选择日期之后也会询问值。

注意:当我输入值时,不会出现此错误。

enter image description here

<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进行所有验证。

5 个答案:

答案 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)

我正在使用DatePickerParsley 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();
  }
});