2011-08-30 26 views
11

Tôi có một trang web mới mà chúng tôi đang làm việc sử dụng HTML5. Mọi thứ đều hợp lệ ngoại trừ các bảng định kiểu LESS và các thẻ Facebook. Tuy nhiên, Chrome sẽ không tự động điền đúng cách. Nếu tôi nhập 'chr' trong trường tên đầu tiên, tôi sẽ nhận được Tự động điền tiêu chuẩn thả xuống bên dưới, nhưng tô sáng, nhấp chuột hoặc chọn tùy chọn tự động điền sẽ không hoàn thành biểu mẫu như mong muốn. Trình đơn thả xuống tự động chỉ đơn thuần biến mất.Điều gì sẽ khiến Chrome tự động điền để ngừng hoạt động?

Tôi đoán có điều gì đó trong HTML gây nhầm lẫn với mã tự động điền nhưng tôi dường như không tìm thấy bất kỳ thông tin nào trên web về triển khai tự động điền của Chrome và mọi thứ cần tìm khi nó không hoạt động.

Chỉnh sửa: Tôi biết Tự động điền hoạt động bình thường vì tính năng này hoạt động trên các trang web khác, ngay cả các trang web khác mà chúng tôi đã phát triển. Nó phải là một cái gì đó cụ thể cho HTML trên trang web này.

+0

Vui lòng cung cấp một số mẫu mã HTML + JS. Tôi có linh cảm rằng bạn có một số mã js ngăn cản hành động gửi biểu mẫu, giả sử rằng bạn đang sử dụng thẻ FORM ở vị trí đầu tiên. – Kayhadrin

+0

Đây là giải pháp tiềm năng cho vấn đề của bạn: http://stackoverflow.com/questions/16445463/how-to-get-chrome-to-autofill-with-asynchronous-post/22191041#22191041 – Kayhadrin

Trả lời

6

Dường như Chrome chỉ cho phép tự động điền cho biểu mẫu có phương thức POST. Đây có thể là bản cập nhật bảo mật trên phiên bản gần đây.

Tự động điền sẽ làm việc nếu bạn làm:

<form id="myForm" action="?go" method="post">

Nó sẽ không hoạt động nếu bạn bỏ qua phương pháp này hoặc nó thiết lập để nhận được:

<form id="myForm" action="?go" method="get">

<form id="myForm" action="?go">

+0

Điều này làm việc cho tôi, cảm ơn. –

3

Cách duy nhất tôi biết trong HTML để chặn nó là thiết lập: autocomplete = "off" trên đầu vào.

Tôi biết các trình đơn thả xuống đôi khi không hoạt động với tính năng tự động điền, chứ không phải hộp văn bản.

+0

Tôi không sử dụng . – Chris

0

Rất tiếc, tôi không thể cung cấp cho bạn câu trả lời dứt khoát, nhưng tôi sẽ bắt đầu xóa mọi thứ khỏi trang ngoại trừ trường nhập đó. Nếu nó hoạt động sau đó tôi sẽ bắt đầu "tìm kiếm nhị phân" - loại bỏ một nửa bố cục ban đầu và xem nó có hoạt động hay không, nếu không phải - hãy xóa một nửa số còn lại và tiếp tục, cho đến khi tìm thấy dòng vấn đề.

Tương tự có thể được áp dụng cho css, js, v.v. Đây là cách khá hiệu quả để tìm kiếm lỗi (đối với 1024 dòng mã bạn sẽ tìm thấy dòng sự cố chính xác chỉ trong 10 bước).

15

Chrome sẽ không lưu mật khẩu hoặc dữ liệu tự động điền nếu biểu mẫu được gửi không đồng bộ. Ví dụ, nếu bạn gửi biểu mẫu sau đây, Chrome sẽ nhắc bạn lưu mật khẩu:

<form action="/signin"> 
    <input type="text" name="email" /> 
    <input type="password" name="password" /> 
    <button type="submit">Sign In</button> 
</form> 

Tuy nhiên, nếu bạn liên kết với sự kiện submit và ghi đè lên hành vi mặc định, sẽ không có cửa sổ và các dữ liệu autocomplete sẽ không được lưu:

$(function(){ 
    $('form').submit(function(e){ 
     e.preventDefault(); 
     $.post($(this).attr('action'), $(this).serialize()); 
    }); 
}); 

Tested trong 20,0

+0

Đó là tất cả khá không liên quan xem xét các dữ liệu người dùng đã lưu tồn tại và nó nên đã được cung cấp để điền vào mẫu trước khi nó được gửi. – Chris

+0

Tôi biết đây là một năm sau đó. Tôi đã gặp sự cố này vì tôi đã gửi biểu mẫu của mình không đồng bộ. Tôi đã thực hiện [câu hỏi này] (http://stackoverflow.com/questions/16445463/how-to-get-chrome-to-autofill-with-asynchronous-post) vài giờ trước. Tôi tự hỏi nếu bạn có một ý kiến ​​về việc đây là một phương pháp tốt để có được xung quanh hành vi này. Dường như nó hoạt động trong Chrome. – 1252748

+0

Xin chào Christopher, tôi đang gửi biểu mẫu của tôi qua '$ ('biểu mẫu'). Submit()' và tôi MUỐN tự động hoàn thành để hoạt động. Tuy nhiên, tính năng tự động hoàn thành chỉ hoạt động, nếu biểu mẫu được gửi qua nút gửi 'nút type =" submit "', bất kỳ ý tưởng nào mô phỏng nút gửi sao cho Chrome tự động hoàn tất? cảm ơn – basZero

2

tôi vừa fighted với vấn đề này trong một thời gian, tôi phát hiện ra rằng một "tên" thuộc tính với một dấu gạch ngang như "email-2" sẽ khiến Chrome không phải au để hoàn thành trường. Trong trường hợp của tôi, tôi đã thay đổi nó thành email2 và bây giờ nó hoạt động. Nó chỉ ảnh hưởng đến thuộc tính "tên", trong khi thuộc tính "id" không tạo ra bất kỳ sự khác biệt nào.

Tôi hy vọng điều này sẽ giúp ai đó tiết kiệm thời gian với một lỗi ngớ ngẩn như vậy.

Lời chào từ Argentina!

-1

Chỉ những phần tử yêu cầu tự động điền phải ở trong biểu mẫu. điền vào wont work.Bring chỉ những hộp văn bản dưới một form.if u đã có hình thức liên quan đến các yếu tố khác, tách chúng và đặt thẻ mẫu mới xung quanh các hộp văn bản mà yêu cầu tự động điền và không có gì khác bên trong nó.

+1

Đây không phải là trường hợp của nhiều biểu mẫu có tính năng tự động hoàn thành mà tôi tìm thấy trên nhiều trang web, trong đó tôi tự động điền chỉ một phần của biểu mẫu – gbalduzzi

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