2010-09-23 90 views
1

出於某種原因,在IE8的時候我就造成了網頁刷新onclick事件後運行該功能。我不想讓頁面刷新發生。頁面刷新,在道場onclick事件,我不想刷新頁面

var edealsButton = dojo.byId("edeals_button"); 
    var edealEmailInput = dojo.byId("edeals_email"); 
    var edealsSignup = dojo.byId("edeals_signup"); 
    var edealsThankYou = dojo.byId("edeals_thankyou"); 
    var currentValue = dojo.attr(edealEmailInput, 'value'); 
    if (currentValue != '' && currentValue != 'Enter your email') { 
     var anim = dojox.fx.flip({ 
      node: edealsSignup, 
      dir: "right", 
      duration: 300 
     }) 
     dojo.connect(anim, "onEnd", this, function() { 
      edealsSignup.style.display = "none"; 
      edealsThankYou.style.display = "block"; 
     }) 
     dojo.connect(anim, "onBegin", this, function() { 

      var criteria = { "emailAddress": '"' + currentValue + '"' }; 
      alert("currentValue " + currentValue); 
      var d = essentials.CallWebserviceMethod('AlmondForms.asmx/SignupEdeal', criteria); 
      d.addCallback(function(response) { 
       var obj = dojo.fromJson(response); 
       alert(obj.d); 
       if (obj != null && obj.d != null) { 
        //alert(obj.d); 
        if (obj.d == false) 
        { 
         var edealSuccess = dojo.byId("edeals_succes_thankyou"); 
         var edealError = dojo.byId("edeals_error_thankyou"); 

         alert("edealError: " + edealError); 
         dojo.style(edealSuccess, "display", "none"); 
         dojo.style(edealError, "display", "inline-block"); 
        } 
        else 
        { 
         var edealSuccess = dojo.byId("edeals_succes_thankyou"); 
         var edealError = dojo.byId("edeals_error_thankyou"); 

         dojo.style(edealSuccess, "display","inline-block"); 
         dojo.style(edealError, "display", "none"); 
        } 
       } 
       else { 
        var edealSuccess = dojo.byId("edeals_succes_thankyou"); 
        var edealError = dojo.byId("edeals_error_thankyou"); 

        dojo.style(edealSuccess, "display", "none"); 
        dojo.style(edealError, "display", "inline-block"); 
       } 
      }); 
     }) 
     anim.play(); 
     edealEmailInput.innerHTML == 'Enter your email'; 
    } 
    else 
    { 
     dojo.attr(edealEmailInput, 'value', 'Enter your email'); 
     dojo.style(edealEmailInput, 'color', '#CC2525'); 
    } 

回答

1

它看起來像你的「d.addCallback」代碼可能沒有妥善處置。您可能想嘗試將「dojo.stopEvent()」放置在「anim.play();」之前行,看看這是否會停止回發。

api.dojotoolkit.org部位,dojo.stopEvent()「阻止傳播及則會覆蓋所傳遞的事件的默認動作」。從docs.dojocampus.org網站,他們說,「dojo.stopEvent(事件)會阻止事件的兩默認行爲,任何任何傳播(冒泡)。」

祝你好運,並希望這可以幫助你一些。

+0

我錯過了dojo.stopEvent(EVT),因此該頁面正在運行的道場,然後做了刷新,就好像一個表單按鈕被按下。 dojo.stopEvent(evt)阻止頁面在表單提交按鈕上進行頁面刷新。 – 2010-09-23 21:21:59