2009-12-29 6 views
1

considèrent cet exemple de code:Comment obtenir la valeur de retour onclick "attribute event" dans "événement de la propriété"?

<a href="some url" onclick="confirm('ok to proceed ?')">bla</a>` 

<script type="text/javascript"> 
    $(document).ready(function() { 
       $("a").live("click", function (event) { 
        // In that function, I want to get 
        // the "confirm" return value     
       }); 
</script> 

Il est possible d'obtenir cette valeur de retour sans modifier le DOM ??

Merci .............

+0

Merci aux réponses ci-dessous, mais mon problème est précisément de combiner événement d'attribut (onclick) et la propriété event (onClick), sans modifier explicitement l'attribut onclick: Voir mon plugin jquery: http://garage.pimentech.net/scripts_doc_jquery_jframe/ >>>>> Je souhaite arrêter la propagation de l'événement si l'attribut onclick renvoie false. – fredz

Répondre

1

vous devez ajouter explicitement le mot "retour", comme ceci:

onclick="return confirm('ok to proceed?')" 

EDIT: ma réponse initiale était BS , voici ce que je dois enfin travailler.

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> 
    <script type="text/javascript" src="jquery-1.3.2.js"></script> 
    <script type="text/javascript"> 
$(document).ready(function(){ 
    $("a").click(function() { 
     var stuff = confirm('ok?'); 
     if (stuff) { 
     alert('was ok, stuff=' + stuff); 
     } 
    else { 
     alert('was not ok, stuff=' + stuff); 
     } 
    }); 
}); 
    </script> 
    </head> 
    <body> 
    <a href="http://jquery.com/">jQuery</a> 
    </body> 
</html> 
+0

Hmm c'est peut-être aussi ça. Où est stockée la valeur de retour? Le paramètre jQuery 'event' transmis à la fonction anonyme? –

+0

iirc l'événement est annulé si l'utilisateur clique sur annuler, donc je ne suis pas sûr que le code JQuery s'exécuterait. –

2
<a href="some url" onclick="var myVar = confirm('ok to proceed ?')">bla</a> 

Si je me souviens bien, cela devrait fonctionner. Vous aurez alors accès à myVar dans votre bloc jQuery comme si vous aviez accès à toute autre variable Javascript.

2

Non, la valeur n'est stockée nulle part pour que vous puissiez y accéder. La seule façon d'obtenir cette valeur est de le déplacer vers un événement click manipulé jQuery comme ceci:

$(document).ready(function() { 
    // The removeAttr removes the original "onclick" attribute 
    $("a").removeAttr('onclick').live("click", function (event) { 
     var ret = confirm('ok to proceed ?'); 
     // Do what you want here because `ret` has the return 
     // value from the `confirm` call. 
    }); 
}); 
-1

getValueConfirm`

var isConfirm = false; function confirmDialog(){ isconfirm = confirm('ok to proceed ?'); } $(document).ready(function() { $("a").live("click", function (event) { alert(isconfirm);// your value that you want get it }); });

Questions connexes