2012-01-20 53 views
5

我的工作是與下面的控制.aspx頁的舊ASP.NET Web窗體應用程序:按鈕onclick事件處理程序永遠不會觸發在Chrome只有

<asp:Button ID="Budget_Approve" OnClick="Budget_Approve_Click" runat="server" 
Visible="True" Width="100" Height="30" Text="Approve"></asp:Button> 

Budget_Approve_Click事件處理程序從未被擊中,我試圖確定爲什麼。我注意到在頁面加載時,該代碼得到執行一些內聯​​JS添加到onclick屬性:

Budget_Approve.Attributes.Add("onclick", "return confirm_approve();"); 

的HTML是獲取呈現:

<input type="submit" name="ctl00$mainContent$Budget_Approve" value="Approve" 
onclick="return confirm_approve();WebForm_DoPostBackWithOptions(new 
WebForm_PostBackOptions(&quot;ctl00$mainContent$Budget_Approve&quot;, 
&quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" 
id="ctl00_mainContent_Budget_Approve" style="height:30px;width:100px;"> 

所以,當我點擊,我希望confirm_approve()到被執行。如果它返回true,我期望回發併爲我的事件處理程序啓動。調試在Chrome中,我發現confirm_approve()確實返回true

javascript code

然而,回發不會發生,而Budget_Approve_Click事件處理程序從未被擊中。爲什麼不?

編輯:我試圖刪除添加內嵌JavaScript代碼的行完全。但是,仍然沒有回傳。下面的HTML呈現爲按鈕:

<input type="submit" name="ctl00$mainContent$Budget_Approve" 
value="Approve" 
onclick="javascript:WebForm_DoPostBackWithOptions(new 
WebForm_PostBackOptions(&quot;ctl00$mainContent$Budget_Approve&quot;, 
&quot;&quot;, true, &quot;&quot;, &quot;&quot;, false, false))" 
id="ctl00_mainContent_Budget_Approve" style="height:30px;width:100px;" /> 

更新:才發現回發並在IE瀏覽器,但仍然沒有鍍鉻。是否有任何瀏覽器特定的設置或問題可能導致此問題?

回答

3

我只想解決它與此:

Budget_Approve.Attributes.Add("onclick", "if (!confirm_approve()) return false;"); 
+0

thx爲輸入。嘗試過,但仍然沒有。我甚至試圖完全刪除這條線,但結果沒有改變。似乎有可能是一個更大的問題.. –

+0

@mhornfeck - 什麼HTML生成?你可以編輯它回到你的回答 –

+0

已發表原創問題 –

1

嘗試......

Budget_Approve.Attributes.Add("onclick", "if (!confirm_approve()) return false;"); 
+0

這與@Adam Racki的答案完全一樣。 – Lion

+1

他們一定是在同一時間打字 –

+0

我們關了一分鐘 - 他沒有複製我 –

-1

檢查您的按鈕被莫名其妙地禁用。 (「input [type ='submit']」)。attr(「disabled」,「disabled」);

如果發生類似情況,Chrome將提供不完整的POST請求。 ASP.NET不會觸發服務器端事件。

相關問題