2009-08-12 28 views
7

Tôi gặp sự cố lạ này trong Safari & Chrome (hoạt động trong Firefox và IE).Dữ liệu biểu mẫu sửa đổi Safari và Chrome trên nút quay lại

  1. Tôi bắt đầu với danh sách hộp kiểm này trong đó có mục đầu tiên 'A' kiểm tra, và mục 'B' và 'C' không được kiểm soát
  2. sau đó tôi tìm đến một trang khác mà ra lệnh cho các mục mà xuất hiện trong danh sách hộp kiểm
  3. tôi thay đổi thứ tự của các mục trong danh sách để nó bây giờ đi 'B', 'A', 'C'
  4. tôi nhấn nút quay lại
  5. các trang được tìm nạp lại từ máy chủ (Tôi đã tắt bộ nhớ đệm), tôi kiểm tra phản hồi được gửi từ máy chủ và mục 'A' vẫn được chọn và không còn là mục đầu tiên trong danh sách nữa.
  6. !!! Hành vi lạ !!! Trang đã tải trong trình duyệt với thứ tự mới 'B', 'A', 'C', nhưng 'A' không được chọn, thay vào đó mục đầu tiên 'B' được chọn.

Bằng cách nào đó có vẻ như vị trí của các mục kiểm tra đã được phục hồi bằng cách nhấn vào nút quay lại, và các dữ liệu mẫu đã bị loại bỏ mà được gửi từ máy chủ.

Khi tôi làm mới trang, thứ tự là 'B', 'A', 'C' và mục 'A' hiện đã được chọn và mọi thứ đều ổn.

Trong cả hai trường, Trang có IsPostBack được đặt thành sai.

Đây có phải là lỗi trong bộ công cụ trên web không?

Đã thử, xóa bộ nhớ cache, chuyển sang chế độ duyệt web riêng tư, xóa lịch sử. Vẫn còn hành vi tương tự.

+0

Điều đó không được gắn thẻ là C# tôi đoán. – cburgmer

Trả lời

4

Tôi đã tìm thấy vấn đề tương tự với Chrome. Khi thử nghiệm thêm, tôi thấy nó chỉ xảy ra nếu trang web sử dụng phiên. Bất cứ khi nào bạn nhấn nút quay lại, nó sẽ xóa mọi dữ liệu bài đăng thay vì đăng lại.

Tôi đã tạo một trang để kiểm tra: http://www.duanehutchins.com/formtest.php Nếu bạn nhập một số thông tin và đăng nó một vài lần, nó hoạt động. Sau đó nhấn lại và tải lại; không có dữ liệu được đăng lại.

Nếu tôi tắt phiên, nó hoạt động tốt. Tôi đã báo cáo lỗi cho Chrome. Chúng tôi sẽ xem liệu có ai giúp đỡ không.

0

Xem ví dụ này:

http://jsfiddle.net/eGutT/9/

này đang xảy ra với tôi là tốt. Điều này có vẻ như một lỗ hổng khá cơ bản vì trường hợp sử dụng rất đơn giản và rất có thể là phổ biến. Tôi đã gặp vấn đề này ở hai nơi trong các dự án khác nhau. Nếu vô hiệu hóa phiên thực sự tránh vấn đề này, nó không phải là thực sự sửa chữa, vì hầu hết khách hàng thậm chí sẽ không biết về tùy chọn này hoặc việc chăm sóc.

4

Chúng tôi đã gặp sự cố tương tự với dữ liệu biểu mẫu đang được "khôi phục" bởi Webkit, mặc dù trạng thái trang đã thay đổi trong thời gian trung bình.

Bài đăng tương tự Safari and Chrome back button changes hidden and submit values in forms đã đưa ra gợi ý phù hợp với chúng tôi. Bằng cách thêm autocomplete="off" vào tất cả các biểu mẫu trên trang, chúng tôi có thể giải quyết vấn đề này.

+0

Ôi Chúa ơi, anh đã cứu mạng tôi! Tôi đã đập đầu của tôi trong hai ngày cho đến khi tôi tìm thấy giải pháp tự động hoàn thành này! Tôi đã có một số hình thức tìm kiếm trên trang đã được trả lại dữ liệu hình thức táo bạo trên nút quay lại nhấp chuột trong Safari và Google Chrome. Đáng ngạc nhiên là IE đã hoạt động hoàn hảo tốt khi nhấp vào nút quay lại. Vì vậy, cảm ơn một lần nữa vì điều này. – Bounce

Các vấn đề liên quan