2009-08-14 10 views
0

J'ai une forme avec un attribut onsubmit comme celui-ci (que je ne peux pas changer ):événements jQuery + événement attributs HTML

<form onsubmit="return validate(this);"> 

Je veux exécuter une autre fonction, qui doit regarder au retour résultat de validate() et puis éventuellement retourner false pour empêcher la soumission du formulaire.

Edit:

Le contenu de onsubmit="" pourrait changer, donc je ne peux pas simplement écrire ce code dans ma propre fonction.

Répondre

1

est venu avec ce qui suit en écrivant la question, mais je suis ouvert à une meilleure façon:

// Grab the old function and remove it from the form 
var oldSubmit = $('form').get(0).onsubmit; 
$('form').get(0).onsubmit = null; 

$('form').submit(function() 
{ 
    // Use .call to make sure "this" is correct when the old function is run 
    if (!oldSubmit.call($(this).get(0))) 
     return false; 

    // Do stuff 

    return false; 
}); 
+0

Vous pouvez simplement utiliser "this" au lieu de $ (this) .get (0) –

+0

@Josh Stodola Bon point – Greg

2

Vous pouvez remplacer la fonction de validation avec votre propre avec quelque chose comme ceci:

var oldValidate = validate; 

var validate = function(form) { 
    var value = oldValidate(form); 
    //do your stuff here. 
} 
Questions connexes