2014-02-20 55 views
0

今天我很沮喪,看起來像一段簡單的代碼。如果我嘗試使用自定義Javascript函數,我似乎無法使OnClientClick無法運行ASP.net代碼。但是,如果我只使用標準的「javascript:return confirm('whatever')」,如果點擊取消,將停止提交。你能幫我理解爲什麼我的自定義函數不能做同樣的事情嗎?JavaScript函數不停止Button.Click ASP.Net代碼

下面是按鈕的代碼:

<asp:Button ID="ButtonSubmitChanges" runat="server" Text="Submit Changes" Class="justround" autofocus="autofocus" 
    OnClientClick="javascript:myCustomConfirm()"/> 

這裏是VB.Net函數來處理按鈕點擊:

Protected Sub ButtonSubmitChanges_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ButtonSubmitChanges.Click 

    Dim ChangeErrorMessage As String = SubmitChanges() 

    If ChangeErrorMessage.Length <= 0 Then 

     Response.Redirect("ViewChangeRequest.aspx?CRID=" & ChangeRequest_ID.ToString) 
    Else 
     labelSystemMessage.Text = ChangeErrorMessage 
    End If 
End Sub 

這裏是客戶的Javascript功能:

function myCustomConfirm() { 

return confirm("Are you sure?"); 
} 

再次,爲什麼它會停止onclick與正常返回confirm()並單擊取消,但沒有當我使用我的功能時,停止代碼並點擊取消?

+0

這已經有一段時間了,但我相信你需要在.aspx中使用AutoWireup =「false」。 – Scottie

+1

您沒有返回「myCustomConfirm()」返回的值。你只是調用它並拋棄結果。 – Pointy

+0

哦,我的天啊,它太簡單了,我想把我的頭撞在鍵盤上。謝謝@點子我知道這似乎太難了...... – user3334102

回答

2

您需要在OnClientClick處理程序中放入return

<asp:Button ID="ButtonSubmitChanges" runat="server" 
Text="Submit Changes" Class="justround" autofocus="autofocus"  
OnClientClick="javascript:return myCustomConfirm()"/> ` 
+0

吉茲,我知道這很簡單,但現在我只是覺得可笑。非常感謝你@AricTenEyck! – user3334102