sert
This commit is contained in:
parent
33a7436eda
commit
6d26cee8e4
|
|
@ -47853,33 +47853,27 @@ function formAjoutTableRef() {
|
|||
|
||||
// 3. Application des styles "Champs Requis" (Bordure rouge au focus)
|
||||
// On l'appelle AVANT le focus pour que le premier champ soit déjà "armé"
|
||||
stylechampsRequis();
|
||||
if (typeof stylechampsRequis === "function") stylechampsRequis();
|
||||
|
||||
// 4. Focus intelligent sur le PREMIER champ du formulaire
|
||||
setTimeout(function() {
|
||||
// 1. Définition du sélecteur d'exclusion
|
||||
// On cible : input (sauf hidden), select, textarea
|
||||
// On exclut : :disabled, [readonly], :hidden
|
||||
// Sélecteur qui exclut strictement : hidden, disabled, readonly
|
||||
var selector = 'input:not([type="hidden"]):not(:disabled):not([readonly]):visible, ' +
|
||||
'select:not(:disabled):not([readonly]):visible, ' +
|
||||
'textarea:not(:disabled):not([readonly]):visible';
|
||||
|
||||
// 2. Recherche du premier élément valide dans le conteneur
|
||||
var $firstField = $('#div_maj_table').find(selector).first();
|
||||
|
||||
// 3. Application du focus avec vérification
|
||||
if ($firstField.length > 0) {
|
||||
if ($firstField.hasClass('selectpicker')) {
|
||||
// Pour Selectpicker, on utilise sa méthode interne
|
||||
$firstField.selectpicker('focus');
|
||||
// SOLUTION CIBLÉE : On force le focus sur le bouton généré par le plugin
|
||||
$firstField.closest('.bootstrap-select').find('.dropdown-toggle').focus();
|
||||
} else {
|
||||
// Pour les autres (input, textarea, select standard)
|
||||
// Focus standard pour input et textarea
|
||||
$firstField.focus();
|
||||
}
|
||||
} else {
|
||||
console.log("Aucun champ saisissable trouvé dans le formulaire.");
|
||||
}
|
||||
}, 300); // Augmentation légère du délai pour garantir le rendu du Selectpicker
|
||||
}, 300); // 300ms pour être sûr que le Selectpicker est totalement dessiné
|
||||
}
|
||||
});
|
||||
}
|
||||
|
|
@ -47978,19 +47972,29 @@ function formModifTableRef($idData) {
|
|||
format: formatD
|
||||
});
|
||||
|
||||
if (typeof stylechampsRequis === "function") stylechampsRequis();
|
||||
// 3. Application des styles "Champs Requis" (Bordure rouge au focus)
|
||||
// On l'appelle AVANT le focus pour que le premier champ soit déjà "armé"
|
||||
if (typeof stylechampsRequis === "function") stylechampsRequis();
|
||||
|
||||
// 3. Focus intelligent sur le PREMIER champ du formulaire
|
||||
// 4. Focus intelligent sur le PREMIER champ du formulaire
|
||||
setTimeout(function() {
|
||||
var $firstField = $('#div_maj_table').find('input:not([type="hidden"]), select').first();
|
||||
// Sélecteur qui exclut strictement : hidden, disabled, readonly
|
||||
var selector = 'input:not([type="hidden"]):not(:disabled):not([readonly]):visible, ' +
|
||||
'select:not(:disabled):not([readonly]):visible, ' +
|
||||
'textarea:not(:disabled):not([readonly]):visible';
|
||||
|
||||
var $firstField = $('#div_maj_table').find(selector).first();
|
||||
|
||||
// Si le premier champ est un selectpicker, on utilise sa méthode focus dédiée
|
||||
if ($firstField.hasClass('selectpicker')) {
|
||||
$firstField.selectpicker('focus');
|
||||
} else {
|
||||
$firstField.focus();
|
||||
if ($firstField.length > 0) {
|
||||
if ($firstField.hasClass('selectpicker')) {
|
||||
// SOLUTION CIBLÉE : On force le focus sur le bouton généré par le plugin
|
||||
$firstField.closest('.bootstrap-select').find('.dropdown-toggle').focus();
|
||||
} else {
|
||||
// Focus standard pour input et textarea
|
||||
$firstField.focus();
|
||||
}
|
||||
}
|
||||
}, 200);
|
||||
}, 300); // 300ms pour être sûr que le Selectpicker est totalement dessiné
|
||||
},
|
||||
error: function(xhr) {
|
||||
toastr.error("Erreur de chargement du formulaire");
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user