2010-08-12 4 views
2

Je n'ai pas pu arrêter l'événement onClick? Si j'utilise simplement le nœud dom avec l'événement onclick alors dojo.stopEvent() fonctionne mais pas avec le onClick du widget. Je reçois l'erreur "Impossible de charger la page ... état 0". J'ai découvert que cela se produit lorsque la page se rafraîchit pendant l'exécution de l'appel Ajax. Je poste mon code. Toute aide est appréciéeDojo: Impossible d'arrêter l'événement "onClick" dijit

// create a button which will be replaced by the Button widget 
    var submitButton = dojo.create('button', {type:"submit", id:"submitButton"}, popupFormControlDiv); 

    var popupFormSubmitButton = new dijit.form.Button({label: "Create", type:"submit"}, "submitButton"); 

    dojo.connect(popupFormSubmitButton, "onClick", function(event) { 
     //Stop the submit event since we want to control form submission. 
     event.preventDefault(); 
     event.stopPropagation(); 
     dojo.stopEvent(event); 

     // construct the arguments for the post request 
     var xhrArgs = { 
      form: popupForm, 
      url: "/admin/sys-config/registration-form/add", 
      handleAs: "text", 
      load: function(data) { 
       console.log("success"); 
      }, 
      error: function(error) { 
       console.log("error"); 
      } 
     } 
     var deferred = dojo.xhrPost(xhrArgs); 
    }); 

Répondre

0

Vous pouvez revenir false dans la fonction de gestionnaire onClick pour annuler la soumission du formulaire.

+0

merci ..... j'ai même essayé sans succès .... la page commence immédiatement à rafraîchir une fois que le poste Ajax est fait – rahul

2

J'ai juste essayé avec des widgets et des boutons réguliers et les deux façons que je peux obtenir le gestionnaire de clic du bouton pour empêcher l'événement de soumettre le formulaire.

DOM seulement: http://jsbin.com/inoyo4/edit

Widgets: http://jsbin.com/ayomu4/edit

Notez que avec DOM je me connecte à onclick alors avec des widgets je me connecte à onClick. La notation camel-case est utilisée régulièrement par dijit, et les widgets dijit incluent de nombreux hooks d'événements qui correspondent aux événements DOM standards (en minuscules) sur les nœuds dans les widgets. Malheureusement, cela peut causer de la confusion.

Vous pouvez trouver cette valeur une lecture: http://docs.dojocampus.org/quickstart/events

1
var f=dijit.byId("id"); 
f.set("onClick",function(){;}); 
Questions connexes