簡體   English   中英

按鈕onClick事件處理程序永遠不會在Chrome中觸發

[英]Button onClick Event Handler Never Fires in Chrome Only

我正在使用一個舊的ASP.NET WebForms應用程序,該應用程序具有帶以下控件的.aspx頁面:

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

Budget_Approve_Click事件處理程序永遠不會被命中,我正在嘗試確定原因。 我注意到頁面加載時,執行此代碼以向onclick屬性添加一些內聯j:

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代碼

但是,回發永遠不會發生, 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中可以正常工作 ,但仍然不是Chrome。 是否存在可能導致此問題的特定於瀏覽器的設置或問題?

我會用這個來解決它:

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

試試這個...

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

檢查您的按鈕是否以某種方式被禁用。

$(“input [type ='submit']”)。attr(“disabled”,“disabled”);

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM