2008-09-09 14 views
14

Khi người dùng nhấn Làm mới trên trình duyệt của họ, nó sẽ tải lại trang nhưng giữ nội dung của các trường biểu mẫu. Mặc dù tôi có thể thấy đây là một mặc định hữu ích nhưng nó có thể gây phiền toái trên một số trang động, dẫn đến trải nghiệm người dùng bị hỏng.Hành vi làm mới trình duyệt

Có cách nào, trong tiêu đề HTTP hoặc tương đương, để thay đổi hành vi này không?

+0

Trước khi bạn làm điều này, bởi vì cẩn thận trong giả định của bạn rằng mọi người sẽ muốn bạn xóa biểu mẫu, vì cá nhân, tôi thích dữ liệu biểu mẫu đó có sẵn trong suốt/sau. Phải mất một thời gian dài cho các trình duyệt để làm điều này và tôi ghét nó biến mất! –

+0

Đừng lo lắng, tôi không tắt tính năng này cho tất cả các biểu mẫu, chỉ vài trường hợp giả định không có ý nghĩa. –

Trả lời

30
<input autocomplete="off"> 
+1

có hoạt động với các nút radio không? –

+1

nó hoạt động cho các nút radio – James

+0

nó chỉ hoạt động với HTML5 – assaqqaf

0

Tôi tự hỏi, nếu bạn thiết lập các trang không được lưu trữ thông qua thẻ meta, mà sẽ khắc phục vấn đề? http://lists.evolt.org/archive/Week-of-Mon-20030106/131984.html Nếu có, nó sẽ có lợi ích khi làm việc trên trình duyệt bị tắt Javascript.

+0

Thực ra, tôi cần Javascript cho tất cả các loại bit khác của trang. –

6

này nên làm như lừa:

<body onload="document.FormName.reset();"> 

Thay FormName với tên của hình thức của bạn và sau đó tất cả các lĩnh vực sẽ được thiết lập lại khi người dùng nhấp refresh trong trình duyệt của mình.

Hoặc nếu bạn chỉ muốn thiết lập lại một số lĩnh vực, thêm video này vào dưới cùng của trang của bạn:

<script type="text/javascript"> 
    document.getElementById('field1').value =''; 
    document.getElementById('field2').value =''; 
    document.getElementById('field3').value =''; 
</script> 

Đó sẽ thiết lập lại các lĩnh vực mỗi khi người dùng nhập trang, bao gồm làm mới

0

Các dữ liệu trên biểu mẫu không phải là một phần của đặc tả w3c. Đó là một tính năng trình duyệt để làm cho cuộc sống của bạn dễ dàng. Vì vậy, nếu bạn không muốn giữ dữ liệu sau khi tải lại, bạn có thể đặt tất cả các giá trị của biểu mẫu thành rỗng sau khi tải nó, như Espo đã nói. Ngay cả khi trang không được lưu trong bộ nhớ cache, nó sẽ hiển thị dữ liệu trên biểu mẫu, vì dữ liệu không phải là một phần của mã html của trang. Bạn có thể thử này quá (không biết nếu nó sẽ làm việc):

<input type="text" name="foo" value=""> 
3

Thêm thuộc tính autocomplete thiết lập để "tắt" để các yếu tố đầu bạn không muốn được làm mới. Ví dụ:

<input type="text" name="pin" autocomplete="off" /> 

thấy the W3C reference

mặc dù không được đề cập trong các tài liệu tham khảo, nó hoạt động cũng với hộp kiểm, ít nhất là trên firefox.