2012-01-03 45 views
51

Tôi đang tạo biểu mẫu đăng ký cho trang web của mình. Nó chứa các trường biểu mẫu chuẩn khác nhau. Chẳng hạn như: tên, địa chỉ, số điện thoại, tên người dùng, mật khẩu, v.v.Bật tự động điền biểu mẫu của trình duyệt

Khi tôi nhấp đúp vào một trường (trong Chrome 16), để tôi có thể tự động điền địa chỉ của mình, tôi nhận được thông báo này:

Trang web này đã tắt tính năng điền tự động cho biểu mẫu này.

Tôi đã không tắt tính năng này, vậy làm cách nào để bật tính năng này? Tôi đã thử thêm autocomplete="on" vào thẻ <form> và vào (một số) thẻ <input> và điều đó không có tác dụng.

Tôi có cần phải thêm autocomplete="on" vào mọi trường không? Ngoài ra, trình duyệt biết trường nào là gì? Tôi có cần đặt tên cho các trường đặc biệt không?

Một câu hỏi khác: Có một số loại sự kiện onautocomplete được kích hoạt khi biểu mẫu tự động điền không? Trên biểu mẫu của tôi, khi bạn nhập mã zip, nó sẽ tìm trong cơ sở dữ liệu của chúng tôi (qua AJAX) và sau đó nhận tiểu bang và thành phố (danh sách thành phố và tiểu bang, vì mã zip có thể ở nhiều thành phố) và điền vào cho bạn. Tôi đã hy vọng tôi có thể chạy sau khi biểu mẫu được tự động điền.

P.S. Tôi đang sử dụng plugin jQuery form validation, nếu điều đó quan trọng.

+0

add autocomplete = "on" cho thẻ

, đó là nó. Bây giờ xóa lịch sử của bạn trong vài giờ qua và làm mới trang của bạn. Hy vọng rằng có thể giúp đỡ. Kính trọng –

+0

Nếu bạn có một tài khoản oracle, hãy đăng nhập vào trang web, sau đó nhấp vào Tài khoản bên cạnh tên của bạn, trang đó tự động hoàn tất, bạn có thể xem bằng cách xem mã nguồn của nó. Kính trọng –

+0

@GagandeepBali: Đã thử rằng, không trợ giúp = (Tôi đã thêm 'autocomplete =" on "' vào '', mở trang ở chế độ Ẩn danh của Chrome và khi tôi cố gắng tự động hoàn tất trường địa chỉ, tôi đã nhận lỗi trong câu hỏi –

Trả lời

72

Vấn đề là thẻ biểu mẫu không có method="POST" trên đó.

Sau khi Googling tin nhắn, tôi đã tìm thấy bug report và một trong số comments được đề cập method="POST".

Tôi đã thêm method="POST" và thì đấy! Công việc điền tự động.

Trong một số trường hợp, bạn cũng có thể cần thêm action nếu biểu mẫu không có. action="javascript:void(0)" hoạt động.

Lưu ý: Tự động điền có vẻ như kích hoạt sự kiện onchange.

Note 2: Đối với cách trình duyệt biết những gì lĩnh vực là gì, xem câu hỏi này: How to trigger Autofill in Google Chrome?

+0

Tôi cũng đã thêm phương thức = POST vào biểu mẫu của tôi, nhưng thông báo vẫn còn ở đó ... Chrome 21 –

+0

@PeterO .: Bạn có cho nó thuộc tính 'action' không? –

+0

Có, nó ở đó. –

3

Tùy chọn tắt tự động điền thường nằm trong thẻ biểu mẫu, xem trang Nhà phát triển từ Mozilla here. Điều này có nghĩa là việc xóa thông thường thuộc tính đó sẽ kích hoạt lại nó trên một trang web.

Liên quan đến phần thứ hai với yêu cầu AJAX, tôi không nghĩ có người nghe, nhưng bạn có thể thêm hàm kiểm tra giá trị của trường mỗi x giây chẳng hạn và nếu thay đổi bạn có thể thực hiện tra cứu của bạn.

+0

Tôi muốn bật tự động hoàn thành * trên *, không tắt. –

+0

Tôi đã làm rõ hơn một chút. Có nghĩa là để nói rằng nếu bạn có thể tắt nó đi bằng cách thêm thuộc tính đó, bạn sẽ có thể kích hoạt nó bằng cách loại bỏ thuộc tính. – canihavesomecoffee

+0

Xóa thuộc tính 'autocomplete' (hoặc đặt' autocomplete = "on" ') chưa bật nó. Tôi vẫn nhận được thông báo 'Trang web này đã tắt tính năng điền tự động cho biểu mẫu này.' trong Chrome. –

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