Плагин daterangepicker не проверяет действительное значение даты - PullRequest
1 голос
/ 10 октября 2019

Я использую этот плагин: http://www.daterangepicker.com/

Мне нужно поле ввода, где Я могу выбрать одну дату , или оставить пустым . Если я вставлю недопустимую дату, плагин должен исправить ее сам .

Я создал jsfiddle, чтобы сообщить о проблеме:

ПЕРВЫЙ ПРИМЕР ВВОДА: эта версия поля вводапрекрасно работает, но я не могу очистить поле, если нужно. Суть в том, что если я вставлю неверную дату вручную, само поле будет исправлено!

ВТОРОЙ ПРИМЕР ВВОДА: В этом поле ввода я могу очистить поле, если мне нужно, НО, если я написал недействительную дату вручную, недействительнуюценность остается !! Я хотел бы, чтобы плагин проверял действительность при смене триггера!

Это моя скрипка:

https://jsfiddle.net/k15vzajd/2/

Используемый код:

$("#data2").daterangepicker({
        "showISOWeekNumbers": true,
        "autoApply": true,
        "autoUpdateInput": false,
        "singleDatePicker": true,
        "locale": {
        "format": "DD/MM/YYYY",
            "separator": " - ",
            "applyLabel": "Applica",
            "cancelLabel": "Annulla",
            "fromLabel": "Da",
            "toLabel": "A",
            "customRangeLabel": "Personalizza",
            "weekLabel": "W",
            "daysOfWeek": [
                "Do",
                "Lu",
                "Ma",
                "Me",
                "Gi",
                "Ve",
                "Sa"
            ],
            "monthNames": [
                "Gennaio",
                "Febbraio",
                "Marzo",
                "Aprile",
                "Maggio",
                "Giugno",
                "Luglio",
                "Agosto",
                "Settembre",
                "Ottobre",
                "Novembre",
                "Dicembre"
            ],
            "firstDay": 1
        }
    }, function(start_date, end_date) {
        this.element.val(start_date.format('DD/MM/YYYY')).trigger("change");
    });

});

1 Ответ

0 голосов
/ 10 октября 2019

добавьте эту строку, чтобы предотвратить поведение по умолчанию:

  $('#data1, #data2').on('keydown', function(event){
        // allow "back" key
        keycode = event.keyCode || event.which
        if(keycode!=8) event.preventDefault();
  })

теперь возможен только ввод с помощью календаря выбора даты или очистка поля ввода с помощью клавиши возврата. примечание: jsfiddle использует конфигурацию 2-го средства выбора даты для $data1 и #data2.

, см. обновленную скрипту: https://jsfiddle.net/cjfswnrx/

или вы можете использовать конфигурацию по умолчанию дляПлагин, который позволяет вручную редактировать дату и самокорректируется:

$("#data1, #data2").daterangepicker({
    singleDatePicker: true,
    showDropdowns: true,
    minYear: 1901,
    maxYear: parseInt(moment().format('YYYY'),10),
    // your locale settings

https://jsfiddle.net/36ybpd50/

...