improvements-2.x-dev/modules/improvements_form/assets/improvements.form.js

modules/improvements_form/assets/improvements.form.js
(function (Drupal) {

  Drupal.behaviors.improvementsForm = {
    attach: function attach(context, settings) {
      if (context.tagName == 'SCRIPT') {
        return;
      }

      // Trigger "delayedinput" event after user change input
      once('delayedinput', '\
        input[type="text"],\
        input[type="number"],\
        input[type="email"],\
        textarea\
      ', context).forEach(function (element) {
        var timeout = element.dataset.inputTimeout ? element.dataset.inputTimeout : 600;
        var timer;

        var triggerCallback = function () {
          element.dispatchEvent(new CustomEvent('delayedinput'));
          timer = null;
        };

        element.addEventListener('input', function (event) {
          clearTimeout(timer);
          timer = setTimeout(triggerCallback, timeout);
        });

        element.addEventListener('blur', function (event) {
          if (timer) {
            clearTimeout(timer);
            triggerCallback();
          }
        });
      });
    }
  };

})(Drupal);

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc