我正在开发一个旧的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
事件处理程序从未被触发,我正在尝试确定原因。我注意到当页面加载时,会执行以下代码将一些内联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("ctl00$mainContent$Budget_Approve",
"", true, "", "", false, false))"
id="ctl00_mainContent_Budget_Approve" style="height:30px;width:100px;">
当我点击时,我期望执行
confirm_approve()
函数。如果它返回true
,我期望进行一次postback并且调用我的事件处理程序。在Chrome中调试时,我发现确实返回了true
:
Budget_Approve_Click
事件处理程序也从未被触发。为什么会这样呢?
编辑:我尝试完全删除添加内联JavaScript代码的那行,但仍没有postback。以下HTML呈现给按钮:<input type="submit" name="ctl00$mainContent$Budget_Approve"
value="Approve"
onclick="javascript:WebForm_DoPostBackWithOptions(new
WebForm_PostBackOptions("ctl00$mainContent$Budget_Approve",
"", true, "", "", false, false))"
id="ctl00_mainContent_Budget_Approve" style="height:30px;width:100px;" />
更新:发现在IE中,回发可以正常工作,但在Chrome中仍然无法正常工作。是否存在任何特定于浏览器的设置或问题可能导致此问题?