J'ai un élément Select2 et un élément d'entrée comme suit ...Select2 ajouter/mise à jour sur le changement d'entrée
Label: <input class="default-ele" type="text"/>
<select class="some-select">
<option>-- None --</option>
</select>
et certains JS/JQuery comme suit ...
$(document).ready(function() {
$(`.${type}-default`).select2({
theme: 'bootstrap'
});
$(document).on('change', '.default-ele', function() {
var newVal = $(this).val();
var selAdd = new Option(newVal, newVal);
$('.some-select').append(selAdd).trigger('change');
});
});
Que tous fonctionne sauf que si vous entrez une valeur dans l'entrée puis cliquez sur la sélection avec le curseur toujours dans l'entrée, la valeur n'est pas là jusqu'à ce que vous déplacez le focus loin de la sélection et de nouveau à elle. Existe-t-il un délai d'expiration ou un autre moyen d'afficher la valeur lorsque vous cliquez immédiatement sur la sélection après que l'entrée a été modifiée?
TIA
Utilisez les événements fournis par le plug-in et transmettez-les via les options lorsque vous initialisez votre liste déroulante select2. Voir https://select2.github.io/options.html#events – kyle
pourquoi ne pas avoir un bouton pour l'ajouter à la liste déroulante? –
c'est dynamique (j'ai coupé une partie du code pour la brièveté). Un but est la convivialité et la minimisation des clics. De plus, le select est déjà initialisé au moment où la valeur est entrée. –