J'ai un formulaire Web que je voudrais soumettre en cliquant sur un bouton PayPal.

J'ai réussi à faire fonctionner l'un ou l'autre, mais pas les deux. Le bouton Paypal permet donc de soumettre le formulaire puis de charger la page de paiement. Ce code envoie uniquement le formulaire et ne charge pas la page de paiement.

$('#block-paypalblock input[type="image"]').click(function() {
    $('#edit-actions input#edit-actions-submit').click();
})

Ce code charge uniquement la page de paiement :

$('#block-paypalblock input[type="image"]').click(function() {
    $('#edit-actions input#edit-actions-submit').click();
    $(this).click();
})

Qu'est-ce que je rate? Ai-je besoin d'un troisième bouton qui gérerait les deux autres boutons ?

<form class="webform-submission-form webform-submission-add-form webform-submission-purchase-1-2-3-form webform-submission-purchase-1-2-3-add-form js-webform-details-toggle webform-details-toggle contextual-region" data-drupal-selector="webform-submission-purchase-1-2-3-add-form" action="/form/purchase-1-2-3" method="post" id="webform-submission-purchase-1-2-3-add-form" accept-charset="UTF-8" data-drupal-form-fields="edit-first-name,edit-actions-submit">
0
Burlyn84 14 mars 2019 à 20:32

2 réponses

Meilleure réponse

La meilleure façon de le faire est de mettre un nom pour deux fonctions :

function myfunction1 () {
    myelement1 = $('#element1')
    //work with element 1
});

function myfunction2 () {
    myelement2 = $('#element2')
    //work with element 2
});

Alors appelle quand tu veux

$(mytrigger).click(function () {
    function1();
    function2();
});
1
Jordi Castillo 14 mars 2019 à 17:59

Je pense que votre sélecteur est mauvais, essayer de cliquer sur les deux boutons avec un seul sélecteur ne fonctionne pas pour moi, cela fonctionne cependant.

$(function () {
    $('.test').click(function () {
        $('#edit-actions').click();
        $('input#edit-actions-submit').click();
    });

    $('#edit-actions').click(function () {
        console.log('#edit-actions', 'clicked');
    });

    $('input#edit-actions-submit').click(function () {
        console.log('#edit-actions-submit', 'clicked');
    });
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button type="button" class="test">click me</button>
<input type="button" id="edit-actions" value="button1" />
<input type="button" id="edit-actions-submit" value="button2" />
1
Nicolay 14 mars 2019 à 17:48