在ASP.Net页面上,我只在IE浏览器出现问题。这里是描述。为什么IE在JS调用点击按钮后不刷新页面?
在页面上有两个按钮和一个标签。第一个按钮是可见的,并在click事件上调用JS函数。这个JS函数调用第二个按钮的点击功能。第二个按钮在click事件上有一个C€事件处理程序。 C#事件处理程序编辑标签。
在Firefox中:点击后标签被正确编辑。 在IE(8)中:尽管C€事件处理程序已正确命中,但未对标签进行编辑。
另外,我观察到,在IE中,Page_Load事件是JS按钮点击后两次调用: 的Page_Load button2_OnClick =>标签文本的变化 的Page_Load =>标签文本复位:(
在Firefox中,在Page_Load只调用一次
我的问题是:?如何让IE刷新正确的页面作为Firefox没有一个JS按钮后点击
下面是示例测试代码:
1)页ASPX
<head runat="server">
<title></title>
<script type="text/javascript">
function button1Click(sender, args) {
var button2 = document.getElementById("button2");
button2.click();
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Button runat="server" ID="button1" Text="Click-me!" OnClientClick="button1Click();" />
<asp:Button runat="server" ID="button2" Text="Second" OnClick="button2_OnClick" style="display:none" />
<p />
<asp:Label runat="server" ID="label1" Text="Init" />
</div>
</form>
</body>
</html>
2)C#代码隐藏:
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void button2_OnClick(object sender, EventArgs e)
{
label1.Text = "Changed";
}
}
我使用ASP.Net 3.5,所以我不能使用它。此外,button1和button2在最终客户端页面中呈现为相同的ID,而不是像ctl001_button1之类的东西。 – WolveFred
我在第一篇文章中添加了一个有趣的信息:“另外,我在IE中观察到,在JS按钮点击[...]后两次调用Page_Load事件”。 – WolveFred
尝试在'button1Click()'方法中放入'return false'。 –