У меня есть Ajax, который запускается по нажатию кнопки. Иногда для возврата требуется несколько секунд, поэтому я хотел, чтобы пользователь наглядно показал, что браузер что-то делает.
Итак, у меня есть это:
$('#SubmitButton').attr("value", "Working...");
$('#SubmitButton').attr("disabled", true);
//Synchronous Ajax call goes here
$('#SubmitButton').attr("value", "Submit");
$('#SubmitButton').attr("disabled", false);
Как видите, он изменяет текст на кнопке и отключает его. Когда Ajax-вызов возвращается (он синхронный, помните), кнопка возвращается обратно.
В Firefox это прекрасно работает.
В IE это ... странно. Он не запускает код по порядку. Он не меняет текст кнопки и запускается прямо в вызов Ajax. Браузер блокируется с активным «Отправить» с сообщением «Отправить».
Сразу после возвращения Ajax кнопка быстро мигает «Работает ...», а затем возвращается в «Отправить».
По какой-то причине IE не изменяет текст кнопки до после вызова Ajax, даже если код для него до вызова Ajax. 1018 *
Это действует так:
//Synchronous Ajax call goes here
$('#SubmitButton').attr("value", "Working...");
$('#SubmitButton').attr("disabled", true);
$('#SubmitButton').attr("value", "Submit");
$('#SubmitButton').attr("disabled", false);
Опять же, это отлично работает в Firefox. Но в IE есть какая-то ... лага?