|
@@ -96,17 +96,23 @@
|
|
|
elem.next('.pro-suggest-input').remove();
|
|
|
elem.next('.pro-suggestions-container').remove();
|
|
|
let input = $('<input type="text" placeholder="Pro">').addClass('pro-suggest-input form-control form-control-sm').insertAfter(elem);
|
|
|
- $('<div class="pro-suggestions-container position-relative"><div class="suggestions-outer pro-suggestions position-absolute d-none"></div></div>').insertAfter(input);
|
|
|
+ $('<div class="pro-suggestions-container position-relative">' +
|
|
|
+ '<div class="suggestions-outer pro-suggestions position-absolute d-none"></div>' +
|
|
|
+ '</div>').insertAfter(input);
|
|
|
elem.hide();
|
|
|
|
|
|
if(!!elem.attr('data-pro-uid')) {
|
|
|
$.get('/pro-display-name/' + elem.attr('data-pro-uid'), function(_data) {
|
|
|
- input.val(_data);
|
|
|
+ input.val(_data).data('original', _data);
|
|
|
elem.empty().append($('<option value="' + elem.attr('data-pro-uid') + '" selected/>').text(_data));
|
|
|
});
|
|
|
}
|
|
|
else {
|
|
|
- input.val(elem.attr('data-pro-name'));
|
|
|
+ input.val(elem.attr('data-pro-name')).data('original', elem.attr('data-pro-name'));
|
|
|
+ }
|
|
|
+
|
|
|
+ if(elem.is('[required]')) {
|
|
|
+ input.attr('required', 'required');
|
|
|
}
|
|
|
|
|
|
input
|
|
@@ -119,6 +125,13 @@
|
|
|
.on('keypress.pro-suggest', function (e) {
|
|
|
suggestionsOuter = $(this).next('.pro-suggestions-container').find('>.suggestions-outer');
|
|
|
return handleKeypress($(this), e);
|
|
|
+ })
|
|
|
+ .off('blur.pro-suggest')
|
|
|
+ .on('blur.pro-suggest', function (e) {
|
|
|
+ window.setTimeout(() => {
|
|
|
+ $(this).next('.pro-suggestions-container').find('>.suggestions-outer').addClass('d-none');
|
|
|
+ $(this).val($(this).data('original'));
|
|
|
+ }, 50);
|
|
|
});
|
|
|
|
|
|
$(elem).attr('pro-suggest-initialized', 1);
|
|
@@ -145,6 +158,7 @@
|
|
|
$(this).closest('.position-relative')
|
|
|
.prev('.pro-suggest-input')
|
|
|
.val(label)
|
|
|
+ .data('original', label)
|
|
|
.trigger('change');
|
|
|
|
|
|
return false;
|