jQuery(document).ready(function($) {
// --- CONFIGURATION ---
var formID = 1; // REMPLACE PAR L'ID DE TON FORMULAIRE SI DIFFÉRENT DE 1
var reductionFiscale = 0.66; // 66% de déduction (mettre 0.75 pour 75%)
// Sélecteurs basés sur tes IDs
var radioMontant = 'input[name="input_' + formID + '.15"]'; // Note le point pour les radios GF parfois
// Si le sélecteur ci-dessus ne marche pas, essaie : 'input[name="input_' + getFormID(formID) + '_15"]'
// Pour Gravity Forms standard, c'est souvent name="input_15" tout court, donc :
var inputRadioName = 'input[name="input_' + 15 + '"]';
var inputLibreID = '#input_' + formID + '_16';
var blocResultat = '#bloc-fiscal';
var spanMontant = '#montant-choisi';
var spanCout = '#cout-reel';
// Fonction de calcul et d'affichage
function mettreAJourFiscalite() {
var montant = 0;
var estMontantLibre = false;
// 1. Vérifier si un bouton radio est coché
var radioSelectionne = $(inputRadioName + ':checked').val();
// 2. Logique de récupération du montant
// On considère que c'est un montant libre si la valeur du radio contient "Autre"
// ou si le champ libre a une valeur et que le radio n'est pas un chiffre simple.
var valLibre = $(inputLibreID).val();
// Nettoyage de la valeur libre (remplace virgule par point)
if(valLibre) {
valLibre = parseFloat(valLibre.replace(',', '.'));
}
// Si une valeur est saisie dans le champ libre (ID16), elle est prioritaire
if (valLibre > 0) {
montant = valLibre;
} else if (radioSelectionne) {
// On essaie de convertir la valeur du radio en nombre
// Souvent les valeurs sont "10|10" ou juste "10".
// Si la valeur est "Autre", parseFloat donnera NaN.
var valRadioClean = parseFloat(radioSelectionne);
if (!isNaN(valRadioClean)) {
montant = valRadioClean;
}
}
// 3. Calcul et Affichage
if (montant > 0) {
var coutReel = montant * (1 - reductionFiscale);
// Arrondir à 2 décimales
var coutReelAffiche = coutReel.toFixed(2).replace('.', ',');
var montantAffiche = montant.toFixed(2).replace('.', ',');
$(spanMontant).text(montantAffiche);
$(spanCout).text(coutReelAffiche);
$(blocResultat).slideDown(); // Affiche la boîte verte
} else {
$(blocResultat).slideUp(); // Cache la boîte si pas de montant
}
}
// --- ÉVÉNEMENTS DÉCLENCHEURS ---
// 1. Au changement des boutons radio (ID15)
$(document).on('change', inputRadioName, function() {
// Si on change de radio, on vide le champ libre pour éviter les conflits visuels
// Sauf si c'est le choix "Autre" (à adapter selon ta valeur "Autre")
if ($(this).val() !== 'Autre') {
$(inputLibreID).val('');
}
mettreAJourFiscalite();
});
// 2. À la frappe dans le champ libre (ID16)
$(document).on('keyup change', inputLibreID, function() {
mettreAJourFiscalite();
});
// Initialisation au chargement (au cas où le form est pré-rempli)
setTimeout(mettreAJourFiscalite, 500);
});