Вот решение, которое я нашел, действительно хорошо работает во всех браузерах ...
Я даю каждой кнопке (которую можно отключить) класс 'js_submit'
Затем я снова включаю все отключенные кнопки с классом 'js_submit' в событии pagehide, которое срабатывает, когда страница выгружается.
Я обертываю назначение события внутри try-улова, чтобы браузеры, которые не поддерживают это событие, выдавали ошибку (например, IE).
Вот код:
<input id="button" type="button" value="Submit" class="js_submit" />
// Fix for firefox bfcache:
try {
window.addEventListener('pagehide', PageHideHandler, false);
} catch (e) { }
//Fires when a page is unloaded:
function PageHideHandler() {
//re-enable disabled submit buttons:
$('.js_submit').attr('disabled', false);
}