CẬP NHẬT cho năm 2017: Có vẻ như câu trả lời từ Katie có nhiều thông tin cập nhật hơn của tôi. Độc giả tương lai: đưa ra phiếu bầu của bạn cho câu trả lời của cô ấy .
Đây là một câu hỏi tuyệt vời và một trong đó tài liệu rất khó để có được. Trên thực tế, trong nhiều trường hợp, bạn sẽ thấy rằng chức năng Tự động điền của Chrome "chỉ hoạt động". Ví dụ: đoạn mã html sau đây tạo ra một biểu mẫu, ít nhất là đối với tôi (Chrome v. 18), sẽ tự động được điền sau khi nhấp vào trường đầu tiên:
<!DOCTYPE html>
<html>
<body>
<form method="post">
First name:<input type="text" name="fname" /><br />
Last name: <input type="text" name="lname" /><br />
E-mail: <input type="text" name="email" /><br />
Phone: <input type="text" name="phone" /><br />
Address: <input type="text" name="address" /><br />
</form>
</body>
</html>
Tuy nhiên, câu trả lời này là không thỏa đáng, vì nó để lại giải pháp trong vương quốc của "ma thuật". Tìm hiểu sâu hơn tôi biết rằng Chrome (và các trình duyệt hỗ trợ tự động điền khác) chủ yếu dựa vào các manh mối theo ngữ cảnh để xác định loại dữ liệu cần điền vào các thành phần của biểu mẫu. Ví dụ về các đầu mối theo ngữ cảnh như vậy bao gồm name
phần tử đầu vào, văn bản xung quanh phần tử và bất kỳ văn bản giữ chỗ nào.
Tuy nhiên, gần đây, nhóm Chrome đã thừa nhận rằng đây là một giải pháp không thỏa đáng và họ đã bắt đầu bức xúc để chuẩn hóa trong vấn đề này. Một bài viết rất nhiều thông tin từ nhóm Google Webmaster đã thảo luận về vấn đề này, giải thích:
Thật không may, cho đến nay, rất khó để các quản trị web đảm bảo rằng Chrome và các nhà cung cấp điền biểu mẫu khác có thể phân tích chính xác biểu mẫu của họ. Một số tiêu chuẩn tồn tại; nhưng họ đặt gánh nặng lớn lên việc triển khai trang web, vì vậy chúng không được sử dụng nhiều trong thực tế.
("Các tiêu chuẩn" mà họ đề cập đến là một câu gần đây hơn về thông số kỹ thuật được đề cập trong câu trả lời của Avalanchis ở trên.)
Bài đăng trên Google tiếp tục mô tả giải pháp được đề xuất của họ (được đáp ứng bởi những lời chỉ trích quan trọng trong các bình luận của bài đăng). Họ đề xuất sử dụng một thuộc tính mới cho mục đích này:
Chỉ cần thêm một thuộc tính cho thành phần đầu vào, ví dụ: trường địa chỉ email có thể trông như sau:
<input type=”text” name=”field1” x-autocompletetype=”email” />
... Nơi x-
viết tắt của "thử nghiệm" và sẽ bị xóa nếu & khi điều này trở thành tiêu chuẩn. Đọc bài đăng để biết thêm chi tiết, hoặc nếu bạn muốn tìm hiểu sâu hơn, bạn sẽ tìm thấy một lời giải thích đầy đủ hơn về đề xuất trên wiki whatwg .
CẬP NHẬT:
Như đã chỉ ra trong các câu trả lời sâu sắc này , tất cả các biểu thức thông thường mà Chrome sử dụng để xác định / nhận ra các trường phổ biến đều có thể được tìm thấy . Vì vậy, để trả lời câu hỏi ban đầu, chỉ cần đảm bảo tên cho các trường html của bạn được khớp với các biểu thức này. Một số ví dụ bao gồm:autofill_regex_constants.cc.utf8
- tên đầu tiên:
"first.*name|initials|fname|first$"
- họ
"last.*name|lname|surname|last$|secondname|family.*name"
- e-mail:
"e.?mail"
- địa chỉ (dòng 1):
"address.*line|address1|addr1|street"
- Mã Bưu Chính:
"zip|postal|post.*code|pcode|^1z$"