2013-08-23 39 views
0

Ajax Post URL無法在ASP.net上工作圖片按鈕OnClientClick。我想通過OnClientClick中的Ajax Post URL獲取值。Ajax Post URL無法在ASP.net上工作圖片按鈕OnClientClickClick

<asp:ImageButton ID="btngo" runat="server" ImageUrl="~/oea_images/login_btn.png" 
     OnClick="btngo_Click" OnClientClick="clean_all();" Width="80px" /> 

    function clean_all() { 
     try { 
      alert("enter"); 
      $.ajax({ 
       type: "POST", 
       url: "WebForm9.aspx/ForceOut", 
       data: "{}", 
       contentType: "application/json; charset=utf-8", 
       dataType: "json", 
       success: function (msgs) { 
        //alert(msgs); 
        //alert(msgs.d); 
        if (msgs.d == "out") { 
         alert("check"); 
        } 
       } 
      }); 
     } catch (ex) { 
      alert(ex.Message); 
     } 
    } 
+0

你檢查過它在螢火蟲 –

回答

2

return false避免回發。同時刪除asp圖像按鈕的OnClick屬性,並試一試。

 var varglobal=false; 
       function clean_all() { 
         try { 
          if(!varglobal){ 
          alert("enter"); 
          $.ajax({ 
           type: "POST", 
           url: "WebForm9.aspx/ForceOut", 
           data: "{}", 
           contentType: "application/json; charset=utf-8", 
           dataType: "json", 
           success: function (msgs) { 
            //alert(msgs); 
            //alert(msgs.d); 
            if (msgs.d == "out") { 
             alert("check"); 

             varglobal=true; 
             $("#btngo").click();// hopes master page isn't       used. 

            } 
           } 
          }); 
          } 
         } catch (ex) { 
          alert(ex.Message); 
         } 
        return varglobal; 
        } 

因爲它是一個ASP圖像按鈕,在return falsemaynot防止回發(回發是不是input[type=image]默認功能)。請參閱here瞭解它如何。

當發生回發時,服務器的Ajax請求將被取消並執行錯誤功能。您可以通過阻止回發來避免這種情況。

+0

它的工作正常,我也想用OnClick屬性與相同的圖像按鈕。它是否可能 – Bharathi

+0

請參閱最新的答案。只是一個竅門制定出來。 –

0

如果你使用這種方式,你可以避免回發,但你不能直接調用服務器功能。你必須在成功回調中回發。

您可以使用簡單的錨定標記,不需要asp:imagebutton。

<asp:ImageButton ID="btngo" runat="server" ImageUrl="~/oea_images/login_btn.png" 
    OnClientClick="return clean_all();" Width="80px" /> 

function clean_all() { 
    try { 
     alert("enter"); 
     $.ajax({ 
      type: "POST", 
      url: "WebForm9.aspx/ForceOut", 
      data: "{}", 
      contentType: "application/json; charset=utf-8", 
      dataType: "json", 
      success: function (msgs) {     
       if (msgs.d == "out") {      
        //call btngo_Click here with __doPostback() 
        // or execute the code inside "btngo_Click" 
        // on server after "ForceOut" completed 
       } 
      } 
     }); 
    } catch (ex) { 
     alert(ex.Message); 
    } 
return false; 
}