Tôi đang sử dụng một số jquery để vô hiệu hóa nút gửi biểu mẫu sau khi được nhấp để tránh nhấp chuột lặp lại ngẫu nhiên. Điều này làm việc tốt trong tất cả các trình duyệt ngoại trừ Firefox. Trong Firefox nếu người dùng sử dụng nút Quay lại của trình duyệt để quay lại trang sau khi việc tắt nút gửi đã xảy ra, nút gửi vẫn bị tắt. Có giải pháp nào cho vấn đề này?Nút gửi biểu mẫu vẫn bị vô hiệu hóa khi sử dụng nút Quay lại trong Firefox
Trả lời
Nếu trình duyệt đã tắt bộ nhớ cache thì trang sẽ được tải lại như thể không có gì xảy ra (không có nút nào được nhấp).
Nếu bạn muốn phía máy khách, bạn có thể sử dụng cookie.
Bây giờ, nếu bạn có công nghệ phía máy chủ (PHP/Rails), thì bạn có thể đặt giá trị trong biến phiên.
$(document).ready(function() {
$('input[type=submit]', this).attr('disabled', false);
$('#myform').submit(function(){
$('input[type=submit]', this).attr('disabled', true);
});
});
Sử dụng jQuery, điều này sẽ làm cho nút không bị tắt khi sử dụng nút quay lại trên trình duyệt. Thử nghiệm trên FF 3.5.
Thực ra điều này không chính xác - $ (tài liệu) .ready() sẽ không kích hoạt khi nhấn nút quay lại; cũng không có bất kỳ tập lệnh nội tuyến nào. Tốt nhất là sử dụng sự kiện window.onpageshow, mặc dù nếu bạn cần hỗ trợ IE10 hoặc thấp hơn thì bạn sẽ không may mắn. Thông tin thêm tại đây: https://stackoverflow.com/questions/2638292/after-travelling-back-in-firefox-history-javascript-wont-run/2639165#2639165 – Chris
Phụ lục ngắn cho nhận xét của tôi ở trên: điều này áp dụng chỉ dành cho các trình duyệt hiện đại, sẽ lưu vào bộ nhớ cache toàn bộ trang (bao gồm mọi chỉnh sửa được thực hiện bởi tập lệnh). Vì vậy, câu trả lời của Erik ở trên có thể sẽ chính xác tại thời điểm nó được đăng - và nó vẫn sẽ hoạt động trong IE10 trở xuống - nhưng nếu bạn đang tìm câu trả lời này vào năm 2017 hoặc muộn hơn thì hãy cẩn thận. – Chris
Có lẽ, bạn nên thêm autocomplete = tham số "off" để hình của bạn
<form autocomplete="off">
<input type="submit" />
</form>
Thật lạ lẫm với tôi rằng Firefox coi trạng thái của một phần nút "tự động hoàn thành" ... nhưng dù sao, cảm ơn vì giải pháp sạch sẽ. BTW, điều này xảy ra không chỉ khi quay trở lại với trình duyệt, nhưng khi trao đổi trong một phiên bản mới của biểu mẫu thông qua Ajax. – lawrence
Tôi sẽ nói câu trả lời này phải được chấp nhận. –
Không hiệu quả với tôi (Firefox 54) –
- 1. Nút quay lại gửi lại dữ liệu biểu mẫu ($ _POST)
- 2. Tắt nút gửi biểu mẫu
- 3. Vô hiệu hóa Nút khi nhấp vào
- 4. Vô hiệu hóa tự động gửi biểu mẫu trên nút bấm
- 5. Vô hiệu hóa nút sau khi nhấp vào vấn đề
- 6. tắt nút gửi khi javascript bị tắt
- 7. Vô hiệu hóa một nút trong iOS
- 8. Vô hiệu hóa nút Quay lại và Chuyển tiếp trên UIToolBar trong UIWebview
- 9. BlockUI jquery plugin giữ trang bị chặn sau nút "quay lại". Opera/FireFox
- 10. Vô hiệu hóa nút quay lại của trình duyệt trong C#
- 11. Ngăn sử dụng nút quay lại (trong IE)
- 12. Tạo hiệu ứng mờ trên nút bị vô hiệu hóa
- 13. Datagridview, vô hiệu hóa nút/hàng
- 14. Phần tử biểu mẫu bị vô hiệu không được gửi
- 15. Nút biểu mẫu mặc định trong FireFox
- 16. Làm thế nào để vô hiệu hóa hoàn toàn hoặc ẩn nút Quay lại trong QWizard?
- 17. Vô hiệu hóa nút "tải lại lưới" trong nav
- 18. Tại sao biểu mẫu HTML đôi khi bị xóa khi nhấp vào nút quay lại trình duyệt
- 19. Sử dụng jquery để ngăn gửi lại biểu mẫu
- 20. QT - Cách vô hiệu hóa Nút ấn
- 21. Nhiều nút/biểu mẫu gửi trong Rails
- 22. Inline Ckeditor: Tất cả các nút bị vô hiệu hóa
- 23. Tôi có thể phát hiện khi người dùng truy cập trang bằng nút quay lại không?
- 24. Tải lại trang trên nút quay lại
- 25. Phương pháp tốt nhất để gửi các trường biểu mẫu bị vô hiệu hóa trong jQuery?
- 26. Nút gửi biểu mẫu sẽ không gửi khi tên nút "gửi"
- 27. AngularJS - Làm thế nào để vô hiệu hóa một biểu mẫu khi nó được gửi?
- 28. Làm thế nào để vô hiệu hóa nút gửi biểu mẫu "a là Ruby on Rails Way"?
- 29. Gửi giá trị của trường nhập bị vô hiệu hóa
- 30. Kiểm soát nút quay lại phần cứng jquery mobile
Bạn có thể gửi mã của bạn? – ryanulit
Thêm trình xử lý tải chưa có sản phẩm nào. Lý do được thảo luận trong câu hỏi liên quan này: [Sự kiện tải trên trình duyệt chéo và nút Quay lại] (http://stackoverflow.com/questions/158319/cross-browser-onload-event-and-the-back-button/201406) – user240515