2011-05-22 104 views
0

我有一個按鈕,與相應的aspx是這樣的:按鈕不會導致回發

<asp:Button runat="server" ID="checkall" OnClientClick="setAllWeeks(true);" 
    AutoPostBack="true" Text="Check All" /> 

這是因爲我要爲發生在服務器端這個特定的按鈕邏輯是驗證每一個發生時間在Page_Load事件中,另外,我想要首先調用Javascript函數。但是,當我點擊按鈕時,它似乎不會導致第一次回發,只是第二次發佈。

如何保證客戶端函數先執行,然後生成回發?

+0

你能告訴我們生成的html嗎? – TweeZz 2011-05-22 14:23:10

+1

我在頁面驗證失敗時遇到了這個問題。可能值得看一下。 – 2011-05-22 14:33:26

回答

0

這發生在我身上幾次。原因是我在OnClientClick中指定的函數返回'false'。

鋤頭是不是'setAllWeeks'看起來像? 也許它返回false?

+0

好的,謝謝,我錯了。必須有'返回setAllWeeks(true)';'作爲您的OnClientClick。 – TweeZz 2011-05-22 14:22:50

+0

該函數返回void。 – Puppy 2011-05-22 14:23:50

1

執行以下代碼:

<asp:Button runat="server" ID="checkall" OnClientClick="return setAllWeeks(true);" 
    AutoPostBack="true" Text="Check All" /> 

而且setAllWeeks()函數中執行以下操作:

function setAllWeeks(val) { 

    //If everything all right 
    If(True) 
    { 
     //Do something 
     return true; 
    } 
    else 
     return false; 
} 

如果函數的行爲是沒事返回true,否則返回假。

注意:函數的所有路徑都應該返回一個值(布爾值)。