2012-01-20 55 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不会触发服务器端事件。

相关问题