Двойная обратная передача с использованием IE8 - PullRequest
6 голосов
/ 29 августа 2009

Я использую ASP.NET и у меня есть кнопка сохранения на веб-форме. Когда нажата эта кнопка сохранения (ONCE) и я использую IE8, обработчик событий выполняется дважды. Если я использую режим совместимости, он работает просто отлично. В FF все работает просто отлично. Я протестировал IE8 на Vista и Windows 7 и получил то же самое поведение. IE7 работает просто отлично. Просто любопытно, что у кого-то была похожая проблема.

P.S. Я использую продвинутую систему макетов, которая позиционирует и стилизует элементы управления на основе определения макета, поэтому это не просто стандартные элементы управления броском при настройке страницы.

Ответы [ 7 ]

12 голосов
/ 15 сентября 2009

Мы используем onserverclick для тега кнопки вместо кнопки asp.net. Решением было установить тип кнопки «кнопка». До того, как тип не был установлен, и я думаю, что по умолчанию отправлять.

Изменено

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

К

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

Теперь я не получаю двойной пост обратно в IE8.

0 голосов
/ 21 июля 2014

У меня была такая же проблема в IE 11, и мне удалось ее исправить, добавив type = "button" в элемент управления кнопки.

0 голосов
/ 27 января 2012

Просто чтобы добавить к числу решений.

Проблемы возникают не только 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"/>
0 голосов
/ 14 июля 2011

Пожалуйста, посмотрите HTML, как он отображается на странице:

Каждый раз, когда он присутствует

<img src=""/>

возможна двойная обратная передача, для некоторых браузеров ...

Если это проблема, вы можете решить ее, установив пустое изображение по умолчанию для каждой кнопки

<asp:ImageButton ImageUrl="~/Images/blank.gif"...
0 голосов
/ 01 марта 2011

Я только что нашел решение аналогичной проблемы, с которой у меня были проблемы. Поскольку ни одно из предыдущих решений не помогло мне, я решил опубликовать собственное решение.

Проблема:

При использовании кнопки asp на веб-форме и использовании OnClientClick для запуска настраиваемого механизма обратной передачи. Обратная передача, кажется, происходит дважды (второй раз без применения viewstate) например :

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

Решение:

Добавить «return false;» после вызова функции js в кнопке OnClientClick. Добавление его в саму функцию не помогает.

например. :

   function ok(){
            docustompostbackthing(); 
        }
        <asp:Button runat="server" ID="btnOk" Text="Ok" OnClientClick="ok();return false;" cssClass="btn"/>
0 голосов
/ 17 ноября 2009

Я использовал jquery(formobj).trigger(submit) это было изменено на

jquery(formobj)[0].submit() 

Примечание. Я вызываю submit прямо в форме вместо метода jquery. надеюсь, это кому-нибудь поможет

0 голосов
/ 03 сентября 2009

Я только что исправил ошибку с похожими симптомами, которая была вызвана двумя вызовами form.submit (), выполняемыми в клиентском обработчике событий javascript для кнопки.

Похоже, что вторая форма.submit () игнорировалась другими браузерами, но выполнялась в IE8.

...