我的工作是与下面的控制.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("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浏览器,但仍然没有镀铬。是否有任何浏览器特定的设置或问题可能导致此问题?
thx为输入。尝试过,但仍然没有。我甚至试图完全删除这条线,但结果没有改变。似乎有可能是一个更大的问题.. –
@mhornfeck - 什么HTML生成?你可以编辑它回到你的回答 –
已发表原创问题 –