使用IE8进行双回发

时间:2009-08-28 22:15:11

标签: asp.net internet-explorer postback

我正在使用ASP.NET,我在webform上有一个保存按钮。当单击该保存按钮(ONCE)并且我正在使用IE8时,事件处理程序将执行两次。如果我使用兼容模式它工作得很好。在FF中一切正常。我在Vista和Windows 7上测试了IE8并获得了相同的行为。 IE7工作得很好。只是好奇,任何人都有类似的问题。

P.S。我正在使用一个高级布局系统,它根据布局定义对控件进行定位和设置样式,因此它不仅仅是页面设置的标准投影控件。

7 个答案:

答案 0 :(得分:12)

我们使用onserverclick on button标签而不是使用asp.net按钮。解决方案是将按钮的类型设置为“按钮”。在没有设置类型之前,我认为提交是默认的。

更改

<button id="button1" runat="server" onserverclick="button1_OnClick" />

<button id="button1" runat="server" type="button" onserverclick="button1_OnClick" />

现在我没有在IE8中获得双重帖子。

答案 1 :(得分:0)

我刚刚修复了一个类似症状的错误,这个错误是由在按钮的客户端javascript事件处理程序中进行的两个form.submit()调用引起的。

看来第二个form.submit()被其他浏览器忽略但在IE8中执行。

答案 2 :(得分:0)

我正在使用jquery(formobj).trigger(submit)这已更改为

jquery(formobj)[0].submit() 

注意我直接在表单上调用submit而不是jquery方法 希望这有助于某人

答案 3 :(得分:0)

我刚刚找到了解决类似问题的解决方案。 由于之前的解决方案似乎都没有帮助我,我以为我会发布自己的解决方案。

问题:

在webform上使用asp按钮并使用OnClientClick运行自定义回发机制时。回发似乎发生了两次(第二次没有应用viewstate) 例如:

function ok(){
        docustompostbackthing(); 
    }
    <asp:Button runat="server" ID="btnOk" Text="Ok" OnClientClick="ok();" cssClass="btn"/>

解决方案:

添加“return false;”在按钮的OnClientClick中调用js函数之后。 在函数本身中添加它并不起作用。

e.g。 :

   function ok(){
            docustompostbackthing(); 
        }
        <asp:Button runat="server" ID="btnOk" Text="Ok" OnClientClick="ok();return false;" cssClass="btn"/>

答案 4 :(得分:0)

请查看页面上呈现的html:

每次出现

<img src=""/>

对于某些浏览器,可能会发生双重回发......

如果这是麻烦,您可以解决此问题,为每个按钮设置默认的空白图像

<asp:ImageButton ImageUrl="~/Images/blank.gif"...

答案 5 :(得分:0)

只是添加解决方案的数量。

不仅 OnClientClick 存在问题, OnClick 事件在IE8中也会发生非常类似的事情。

<asp:Button runat="server" ID="btnOk" Text="Ok" OnClick="ok();" cssClass="btn"/>

可以更新为以下内容,以避免第二个事件被解雇。

<asp:Button runat="server" ID="btnOk" Text="Ok" OnClick="ok();return false;" cssClass="btn"/>

答案 6 :(得分:0)

我在IE 11中遇到了同样的问题并设法通过添加type =&#34; button&#34;来修复它。按钮控件。

相关问题