web-dev-qa-db-fra.com

Appeler deux fonctions du même onclick

HTML & JS

Comment appeler 2 fonctions à partir d'un événement onclick? Voici mon code

 <input id ="btn" type="button" value="click" onclick="pay() cls()"/>

les deux fonctions étant pay () et cls (). Merci!

100
user182

Ajoutez des points-virgules ; à la fin des appels de fonction pour que les deux fonctionnent.

 <input id="btn" type="button" value="click" onclick="pay(); cls();"/>

Je ne crois pas que le dernier soit requis mais bon, autant l'ajouter pour faire bonne mesure.

Voici une bonne référence de SitePoint http://reference.sitepoint.com/html/event-attributes/onclick

179
Chris Bier

Vous pouvez créer une seule fonction qui appelle les deux, puis l’utiliser dans l’événement.

function myFunction(){
    pay();
    cls();
}

Et puis, pour le bouton:

<input id="btn" type="button" value="click" onclick="myFunction();"/>
31
Renan

Vous pouvez appeler les fonctions de l'intérieur d'une autre fonction

<input id ="btn" type="button" value="click" onclick="todo()"/>

function todo(){
pay(); cls();
}
17
pollirrata

Avec jQuery:

jQuery("#btn").on("click",function(event){
    event.preventDefault();
    pay();
    cls();
});
10
Lucien Baron

La liaison d'événements à partir de HTML n'est pas recommandée. Ceci est recommandé de la manière suivante:

document.getElementById('btn').addEventListener('click', function(){
    pay();
    cls();
});
9
karaxuna

Juste pour offrir un peu de variété, le opérateur de virgule peut aussi être utilisé, mais certains diront "noooooo!", Mais cela fonctionne:

<input type="button" onclick="one(), two(), three(), four()"/>

http://jsbin.com/oqizir/1/edit

8
elclanrs
onclick="pay(); cls();"

cependant, si vous utilisez une instruction return dans la fonction "pay", l'exécution s'arrêtera et "cls" ne s'exécutera pas,

une solution de contournement à ceci:

onclick="var temp = function1();function2(); return temp;"
7
Amine Hajyoussef

mettez un point-virgule entre les deux fonctions en tant que terminateur d'instruction.

6
pk2218

Essaye ça

<input id ="btn" type="button" value="click" onclick="pay();cls()"/>
5
Sachin