
| Current Path : /var/www/html/strat/web/modules/contrib/webform/js/ |
Linux ift1.ift-informatik.de 5.4.0-216-generic #236-Ubuntu SMP Fri Apr 11 19:53:21 UTC 2025 x86_64 |
| Current File : /var/www/html/strat/web/modules/contrib/webform/js/webform.element.options.admin.js |
/**
* @file
* JavaScript behaviors for options (admin) elements.
*/
(function ($, Drupal, once) {
'use strict';
/**
* Attach handlers to options (admin) element.
*
* @type {Drupal~behavior}
*/
Drupal.behaviors.webformOptionsAdmin = {
attach: function (context) {
$(once('webform-options-sync', '.js-webform-options-sync', context)).each(function () {
// Target input name and not id because the id will be changing via
// Ajax callbacks.
var name = this.name;
var $value = $(this);
var $text = $('input[name="' + name.replace(/\[value\]$/, '[text]') + '"]');
// On focus, determine if option value and option text are in-sync.
$value.on('focus', function () {
var sync = $value.val() === $text.val();
$value.data('webform_options_sync', sync);
if (sync) {
$text.prop('readonly', true).closest('.js-form-item, .js-form-wrapper').addClass('webform-readonly');
}
});
// On blur, if option value and option text are in-sync remove readonly.
$value.on('blur', function () {
if ($value.data('webform_options_sync')) {
$text.prop('readonly', false).closest('.js-form-item, .js-form-wrapper').removeClass('webform-readonly');
}
});
// On keyup, if option value and option text are in-sync then set
// option text to option value.
$value.on('keyup', function () {
if ($value.data('webform_options_sync')) {
$text.val($value.val());
}
});
});
}
};
})(jQuery, Drupal, once);