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

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 la 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

Inspiré de: https://crosstec.org/en/support/online-documentation/breezingforms/12-examples-scripts/53-copy-element-value-to-another-element.html

 Ajouter un commentaire
En utilisant ce formulaire de commentaires, vous acceptez que les informations demandées soient enregistrées, affichées ci-dessous et utilisées pour un éventuel contact.