event.preventDefault no IE 10
Estou enviando um formulário e quero impedir a ação de envio até que eu faça algumas outras ações, como mostrar uma barra de progresso para uploads de arquivos. Eu configurei esse código com base em perguntas do SO, comofunção event.preventDefault () não está funcionando no IE.
$(document).ready(function(){
$("#fileform").submit(function(e){
if(!e) e = window.event;
if (e.preventDefault){
// Firefox, Chrome
e.preventDefault();
}else{
// Internet Explorer
e.returnValue = false;
}
// other code
}
}
Tudo funciona bem no Firefox e no Chrome; a ação de envio é impedida, a barra de progresso aparece e, em seguida, o formulário é enviado quando eu digo. No entanto, no IE 10, a primeira condição da instrução if é executada e o formulário parece estar tentando enviar (as bolhas de envio do IE 10 são exibidas). Por que a primeira condição está sendo executada?
O IE 10 suporta preventDefault () onde o IE 8 e 9 não o fizeram? Em caso afirmativo, como lidar adequadamente com a prevenção da ação de envio de formulário no IE 8, 9, 10 que não interferirá no Firefox, Chrome, Safari, etc ...?