Copier des valeur de champs vers d'autres en cochant une case à cocher

Dans un formulaire BreezingForms, j'ai une adresse de facturation et une de livraison. Est-il possible, au cas où les deux sont identiques, de copier les valeurs de l'adresse de facturation vers celles de l'adresse de livraison en cochant une case ?

Niveau : Facile
Version BF minimale requise : BreezingForms Lite
Compatibilité Joomla! 4/5 :

Préparation

Pour commencer, préparez vos champs pour l'adresse de facturation dans une section nommée Adresse de facturation, p.ex.

  • Section 1 : Adresse de facturation
    1. Prénom Nom → nommé nom_a
    2. Rue, nr. → nommé street_a
    3. Code postalnommé cp_a
    4. Ville → nommé city_a
    5. Pays → nommé country_a

Cliquez du bouton droit sur le titre de la Section 1 et choisissez Copier.
Sélectionnez la page (niveau supérieur) et du clic droit, sélectionnez Coller

Votre page présente maintenant deux sections avec chacune leurs champs identiques…

Modifier le nom de la section en Adresse de livraison et les champs de la même manière que dans la section 1 en remplaçant _a par _b parce que deux éléments ne peuvent avoir le même nom et afin de les différencier.

Revenez dans votre Section 1 et insérez-y un élément de type Case à cocher labellisé Adresse de livraison identique à l'adresse de facturation et nommé copy p.ex.
Passez dans les propriétés avancées de cet élément et dans le bas de cette partie, cochez le bouton personnalisé de la zone Script d'action.
Comme type d'action, sélectionnez Clic et dans la zone de script, cliquez Créer le code framework validez le popup afin d'insérer le code générique de cette action.

Dans cette zone de code, après la partie case 'click':, insérez le code suivant :

if (element.checked) {
ff_getElementByName('name_b').value = ff_getElementByName('name_a').value;
ff_getElementByName('street_b').value = ff_getElementByName('street_a').value;
ff_getElementByName('cp_b').value = ff_getElementByName('cp_a').value;
ff_getElementByName('city_b').value = ff_getElementByName('city_a').value;
ff_getElementByName('country_b').value = ff_getElementByName('country_a').value;
}
else {
ff_getElementByName('name_b').value = '';
ff_getElementByName('street_b').value = '';
ff_getElementByName('cp_b').value = '';
ff_getElementByName('city_b').value = '';
ff_getElementByName('country_b').value = '';
}

Vous devez donc obtenir un code complet comme celui-ci :

function ff_copy_action(element, action)
{
    switch (action) {
        case 'click':

if (element.checked) {
ff_getElementByName('name_b').value = ff_getElementByName('name_a').value;
ff_getElementByName('street_b').value = ff_getElementByName('street_a').value;
ff_getElementByName('cp_b').value = ff_getElementByName('cp_a').value;
ff_getElementByName('city_b').value = ff_getElementByName('city_a').value;
ff_getElementByName('country_b').value = ff_getElementByName('country_a').value;
}
else {
ff_getElementByName('name_b').value = '';
ff_getElementByName('street_b').value = '';
ff_getElementByName('cp_b').value = '';
ff_getElementByName('city_b').value = '';
ff_getElementByName('country_b').value = '';
}

            break;
        default:;
    } // switch
} // ff_copy_action

Il reste à enregistrer les modifications apportées à la case à cocher suivi d'un enregistrement du formulaire et du test de fonctionnement.
Complétez votre formulaire au besoin et terminez par la publication ou la mise en place…

Tester la fonction ci-dessous.

Ce formulaire n'étant pas relié à la base de données, il n'enregistre aucune donnée renseignée pour le test. Il n'envoie également aucune notification.

Facturation
Livraison

Pas encore de commentaires.

Connectez-vous pour poster un commentaire

Afin d'éviter les messages indésirables, les commentaires sont réservés aux membres inscrits. Veuillez vous inscrire ou vous connecter pour publier votre commentaire

FAIRE UN DON

paypal btn

Via PayPal

PLUGIN UP DE LOMART

Universal Plugin : UP

De très nombreuses actions pour vos articles en un unique plugin.
up lomart