d
This commit is contained in:
parent
44e281ad6e
commit
3e173357bd
|
|
@ -47666,11 +47666,15 @@ function formAjoutTableRef() {
|
|||
type: 'post',
|
||||
data: donnees,
|
||||
success: function(data) {
|
||||
// Injection du HTML
|
||||
$('#div_maj_table').html(data);
|
||||
|
||||
// SOLUTION RADICALE : On force la réinitialisation
|
||||
forceInitSelectPicker('#div_maj_table');
|
||||
|
||||
// Init composants
|
||||
// Autres initialisations
|
||||
$(".datepicker").datepicker({ autoclose: true, format: 'dd/mm/yyyy' });
|
||||
$(".selectpicker").selectpicker('refresh');
|
||||
if (typeof stylechampsRequis === "function") stylechampsRequis();
|
||||
|
||||
// Focus
|
||||
setTimeout(() => {
|
||||
|
|
@ -47683,25 +47687,18 @@ function formAjoutTableRef() {
|
|||
// Filtrer la liste des villes par pays
|
||||
function filtreVilleParPays() {
|
||||
const codePays = $('#codePays').val();
|
||||
const racineWeb = $("#racineWeb").val();
|
||||
const $divVille = $('#div_ville');
|
||||
|
||||
if (!codePays) return;
|
||||
|
||||
$.ajax({
|
||||
url: racineWeb + "Ajaxfiltrevilleparpays/",
|
||||
url: $("#racineWeb").val() + "Ajaxfiltrevilleparpays/",
|
||||
type: 'post',
|
||||
data: { codePays: codePays },
|
||||
success: function(data) {
|
||||
// Étape radicale : on vide et on nettoie avant l'injection
|
||||
$divVille.find('.selectpicker').selectpicker('destroy');
|
||||
$divVille.empty();
|
||||
|
||||
// Injection du nouveau HTML (qui doit contenir le <select>)
|
||||
// On injecte le nouveau contenu (qui contient le select)
|
||||
$divVille.html(data);
|
||||
|
||||
// Appel de la fonction de reconstruction globale
|
||||
rafraichirSelectPicker('#div_ville');
|
||||
// On nettoie et on réinitialise spécifiquement cette zone
|
||||
forceInitSelectPicker('#div_ville');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -91669,4 +91666,30 @@ function rafraichirSelectPicker(selecteurDiv) {
|
|||
$newSelect.selectpicker('refresh');
|
||||
$newSelect.selectpicker('render');
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Nettoie et initialise proprement les SelectPickers dans un conteneur
|
||||
* @param {string} containerSelector - Le sélecteur du parent (ex: '#div_maj_table')
|
||||
*/
|
||||
function forceInitSelectPicker(containerSelector) {
|
||||
const $container = $(containerSelector);
|
||||
|
||||
// 1. Destruction radicale des instances existantes et de leur HTML généré
|
||||
$container.find('.selectpicker').selectpicker('destroy');
|
||||
$container.find('.bootstrap-select').remove();
|
||||
|
||||
// 2. Ré-initialisation propre sur les éléments <select> présents
|
||||
$container.find('select.selectpicker').each(function() {
|
||||
$(this).selectpicker({
|
||||
liveSearch: true,
|
||||
style: 'btn-white border-2 border-start-0 fw-bold',
|
||||
width: '100%',
|
||||
size: 8,
|
||||
dropdownAlignRight: 'auto'
|
||||
});
|
||||
|
||||
// 3. Forcer le rafraîchissement du rendu
|
||||
$(this).selectpicker('refresh');
|
||||
});
|
||||
}
|
||||
Loading…
Reference in New Issue
Block a user