Как я могу добавить условие при вызове pickdate? - PullRequest
0 голосов
/ 22 сентября 2019

Мой html такой:

<input id="appdate" type="text" class="required" placeholder="Select Date">

Мой javascript такой:

...
$(document).ready(function () {
    ...
    $('#appdate').change(function () {
        console.log('when the retrieveSchedule function is called, this is not executed')
        var date = $('#appdate').val();
        ...
    });
});


appointment = function () {
    function retrieveSchedule({ id, url }) {
        ...
        $.ajax({
            url: url,
            type: 'GET',
            data: '',
            dataType: "json",
            contentType: "application/json; charset=utf-8",
            success: function (result) {
                ...
                var $input = $('#appdate').pickadate({
                    disable: _disableDate,
                    formatSubmit: 'yyyy-mm-dd',
                    min: someDate,
                    max: new Date((someDate.getFullYear() + 1), (someDate.getMonth() - 1), someDate.getDate()),
                    selectMonths: true, 
                    selectYears: true, 
                    close: 'Ok',
                    autoClose: false,
                    closeOnSelect: false, // Close upon selecting a date,
                    onClose: function () { $('.picker__input').removeClass('picker__input--target'); $('.picker').blur(); },
                    onRender: function () {
                        $('#appdate_root .picker__day-display').append('<div class="cal-notif"></div>');
                        var loadingcal = '<div class="cal-loading preloader-background">' +
                            '<div class="preloader-wrapper big active center">' +
                            '<div class="spinner-layer spinner-blue-only">' +
                            '<div class="circle-clipper left">' +
                            '<div class="circle"></div>' +
                            '</div>' +
                            '<div class="gap-patch">' +
                            '<div class="circle"></div>' +
                            '</div>' +
                            '<div class="circle-clipper right">' +
                            '<div class="circle"></div>' +
                            '</div>' +
                            '</div>' +
                            '</div>' +
                            '</div>';
                        $('#appdate_root .picker__calendar-container').append(loadingcal);
                    }
                });

                // Use the picker object directly.
                var picker = $input.pickadate('picker');
                picker.clear();
                if (picker.get('start')) {
                    var getdisable = picker.get('disable');
                    picker.set('enable', [1, 2, 3, 4, 5, 6, 7]);
                    picker.set('disable', _disableDate);
                    getdisable = picker.get('disable');
                    picker.render();

                } else { console.log('false picker'); }
            },
            error: function (result) {
                ...
            }
        }).done(function () {
            ...
        });
    }
    return { retrieveSchedule: retrieveSchedule }
}();

Я не отображаю все свои скрипты.Я только показываю детали проблемы, с которой я сталкиваюсь

Когда запускается вышеуказанный js-файл, он сначала вызывает функцию retrieveSchedule.Если ajax успешен, он создаст pickdate и отобразит его во входном тексте с id = appdate

Моя проблема заключается в том, что когда pickdate успешно отображается во входном тексте с id = appdate, он также запускает этот скриптв $('#appdate').change(function({.Я хочу, чтобы утверждение внутри $('#appdate').change(function({ не запускалось.Так что он работает только при выборе pickdate.Не отображается пикдейт

Как мне выполнить условия?

1 Ответ

1 голос
/ 22 сентября 2019

Как насчет создания проверочной переменной следующим образом

var appdateCreated = false;

$('#appdate').change(function () {
  if(appdateCreated) {
    console.log('when the retrieveSchedule function is called, this is not executed')
  } else {
    appdateCreated = true
  }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...