【发布时间】:2012-03-23 23:15:49
【问题描述】:
我正在开发一个旧的 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,我希望回发并让我的事件处理程序触发。在 Chrome 中调试,我发现confirm_approve() 确实返回了true:
但是,回发永远不会发生,Budget_Approve_Click 事件处理程序永远不会被命中。为什么不呢?
编辑:我尝试删除完全添加内联 javascript 代码的行。但是,仍然没有回发。为按钮呈现以下 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 中仍然无效。是否存在任何可能导致此问题的特定于浏览器的设置或问题?
【问题讨论】:
标签: javascript asp.net google-chrome event-handling