2011-12-10 55 views
0

我正在使用來自http://simplecartjs.com/的第三方購物車。 對於一個正常的結帳我可以使用:與onClick事件的Javascript鏈接

<a href="javascript:;" class="simpleCart_checkout" >Checkout</a> 

和它的作品。但我需要添加一些服務器端功能,不知道如何去做。其中simpleCart_Checkout類存儲在JavaScript文件中的代碼如下:

me.addEventToArray(getElementsByClassName('simpleCart_checkout') , simpleCart.checkout , "click"); 

編輯:和這樣的:

me.checkout = function() { 
     if(me.quantity === 0){ 
      error("Cart is empty"); 
      return; 
     } 
     switch(me.checkoutTo){ 
      case PayPal: 
       me.paypalCheckout(); 
       break; 
      case GoogleCheckout: 
       me.googleCheckout(); 
       break; 
      case Email: 
       me.emailCheckout(); 
       break; 
      default: 
       me.customCheckout(); 
       break; 
     } 
    }; 

所以我試圖用一個按鈕直接調用的方法做:

<asp:Button ID="CheckoutButton" runat="server" Text="Checkout" 
      onclick="CheckoutButton_Click" OnClientClick="Checkout()" /> 

      <script type="text/javascript"> 
       function Checkout() { 

        javascript: simpleCart.checkout; 
       }  
       </script> 

它調用服務器端,但不會調用JavaScript鏈接。我是新來的asp.net和JavaScript,所以不知道如何做到這一點,請幫助。

回答

1

試試這個:

<asp:Button ID="CheckoutButton" runat="server" Text="Checkout" 
      onclick="CheckoutButton_Click" OnClientClick="javascript:Checkout();" /> 

     <script type="text/javascript"> 
      function Checkout() { 

       simpleCart.checkout(); 
       return true; 

      }  
      </script> 

編輯: 你想要的服務器事件後,被稱爲腳本。那麼你需要在「CheckoutButton_Click」結尾調用你的Checkout函數。

Page.ClientScript.RegisterStartupScript(Page.GetType(), "calling checkout", "<script>CheckOut();</script>", true); 

simpleCart.checkout()不會有機會做重定向,爲的OnClientClick返回true,回來後發生。

+0

同樣的事情發生,服務器端被調用並回發但不執行JavaScript。 – Matt

+1

你確定你已經引用了simpleCart嗎?在你的Checkout函數中放置一個警報('xxx')來驗證你的腳本被調用。 – fengd

+0

好的警報工作,所以javascript被調用,它只是沒有找到正確的simpleCart方法。我編輯了我的答案,以顯示simpleCart.js中所有結帳實例。 – Matt

0

這應該夠了。

function Checkout() { 
    simpleCart.checkout(); 
    return true; 
} 
0

你可以從服務器端調用你的javascript。

Page.RegisterStartupScript will assists you to fire javascript from code behind. 

Page.ClientScript.RegisterStartupScript(Page.GetType(), Guid.NewGuid().ToString(), "alert('hello')", true);