У нас есть анимированный GIF, который мы используем, чтобы оживить кнопку отправки после того, как пользователь отправил форму.Если вся проверка проходит на форме, мы назначаем фон с помощью метода jQuery css()
, устанавливая фоновое изображение, расположение и цвет все в одном.
IE9 не показывает фоновое изображение при отправке, хотя продолжаетбыть замеченным в других браузерах.
Этот метод хорошо работал в предыдущих браузерах IE, но, похоже, сломался в IE9, в том числе в более старых «режимах браузера».Я не уверен, является ли это ошибкой в IE9, но она определенно изменила поведение, и я не могу доверять режимам IE7 / 8, чтобы вести себя так, как ожидается.
Кажется, что, возможно, IE решает несделать больше перекраски после того, как пользователь отправил форму.Если это так, я не уверен, что у меня есть способ обойти это, но я хотел бы думать, что это не так.Мы столкнулись с предыдущей проблемой с этой техникой в Firefox, где мы обнаружили, что Firefox останавливает все запросы http, кроме самого запроса формы, что означает, что если фоновое изображение не было в кеше, оно не будет работать.Из-за этого мы взяли предварительную загрузку счетчика на объект Image в памяти.
Интересно, что если я вручную вызываю метод, который обновляет CSS на кнопке из консоли инструментов IE dev, он работает просто отлично.Только когда у нас есть фактическое представление, оно становится упрямым и не может рисовать в счетчике.Также интересно, что удаляет текст из кнопки отправки, что является второй частью эффекта.
У кого-нибудь есть какие-либо идеи о том, что вызывает это / как его предотвратить?
Вот уменьшенная версия кода live()
d, который обрабатывает отправку:
jQuery.fn.disableSubmit = function() {
this.find("input[type=submit]").each(function() {
$(this).css({"background": "url(/asdasdasd.gif) no-repeat 50% 50%"});
});
return this;
};
$("form").live("submit", function() {
var form = $(this);
form.disableSubmit();
return true;
});