Tôi đang gửi biểu mẫu và tôi muốn ngăn tác vụ gửi cho đến khi tôi thực hiện một số thao tác khác như hiển thị thanh tiến trình để tải lên tệp. Tôi thiết lập mã này dựa trên các câu hỏi SO như event.preventDefault() function not working in IE.event.preventDefault trong IE 10
$(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
}
}
Mọi thứ hoạt động tốt trong Firefox và Chrome; hành động gửi được ngăn chặn, thanh tiến trình xuất hiện và sau đó biểu mẫu được gửi khi tôi yêu cầu. Tuy nhiên, trong IE 10, điều kiện đầu tiên của câu lệnh if được thực hiện và biểu mẫu có vẻ như đang cố gửi (các bong bóng gửi của IE 10 hiển thị). Tại sao điều kiện đầu tiên được thực hiện?
Hỗ trợ IE 10 có ngăn chặnDefault() trong đó IE 8 và 9 không? Nếu vậy, làm cách nào để xử lý đúng cách ngăn chặn hành động gửi biểu mẫu trong IE 8, 9, 10 sẽ không ảnh hưởng đến Firefox, Chrome, Safari, v.v ...?
Khi tôi sử dụng mã này, không có gì thay đổi. Firefox và Chrome vẫn hoạt động tốt, nhưng thanh tiến trình của tôi không xuất hiện trong IE (biểu mẫu trình duyệt IE xuất hiện). –
Nevermind, bạn nói đúng. Sự kiện được chuẩn hóa trong jQuery và e.preventDefault() hoạt động như mong đợi. Cảm ơn. –