2015-09-25 36 views
8

Tôi đã xây dựng một hộp thả xuống hộp văn bản AngularJS thành phần hoạt động tốt trong Chrome, Firefox, Safari và Internet Explorer.Tắt đề xuất văn bản nhập trong Edge?

Tính năng của thành phần này là bạn nhập vào một chuỗi và sau đó có thể sử dụng các phím mũi tên lên/xuống để cuộn qua các đề xuất.

Trong Microsoft Edge, ngay sau khi bạn nhấn vào mũi tên xuống, các văn bản sau đây sẽ được thêm vào hộp nhập liệu:

giải thích ngắn gọn những thay đổi của bạn (đánh vần chỉnh, cố định ngữ pháp, cải thiện định dạng)

Tôi có thể làm gì để ngăn chặn điều này xảy ra không?

<form> 
 
    <input type="text" />  
 
</form>

Để chứng minh điều này, chạy thợ ở trên, gõ gì đó vào hộp văn bản và nhấn vào mũi tên xuống hai lần trên Edge. Tôi muốn điều này không xảy ra, vì nó phá vỡ tính năng tự động hoàn tất của tôi!

Cảm ơn

+0

Bạn có đang sử dụng đầu vào không? Nếu không, bạn đang sử dụng loại phần tử nào? Bạn đang cố gắng khắc phục vấn đề này bất cứ cách nào có thể hoặc với một giải pháp Angular.js? – rockmandew

+0

Một đầu vào văn bản chuẩn bog, để xây dựng thành phần, có thể đăng một số mã nếu bạn muốn? – JMK

+0

Cũng có thể, không chắc chắn đầu vào văn bản chuẩn "bog" là hoàn toàn trung thực. Tôi cho rằng đó là lỗi đánh máy và bạn chỉ nói về một kiểu nhập văn bản thông thường. Xin vui lòng gửi mã và tôi sẽ theo dõi. Tôi sẽ giả sử, đó là một giải pháp cài đặt "tự động hoàn tất" đơn giản. – rockmandew

Trả lời

21

Nếu tôi hiểu chính xác, bạn đang gặp sự cố với tính năng tự động hoàn tất. Đơn giản thêm "autocomplete = 'off" "vào đầu vào của bạn và điều đó sẽ vô hiệu hóa tính năng này.

<input type="text" autocomplete="off"/> 
+0

Điều này sẽ không hoạt động trên bất kỳ trình duyệt hiện đại nào. Hãy thử sử dụng các lĩnh vực mồi nhử. http://stackoverflow.com/a/2555771/317908 –

+1

Nó hoạt động cho tôi ở Edge, cảm ơn! –

+0

Trong Edge, nếu bạn lùi và xóa nội dung của đầu vào, Edge sẽ hiển thị hộp tự động hoàn tất. Vì vậy, trong khi thuộc tính này giúp, nó không giải quyết được vấn đề. – Brain2000

1

nếu bạn cần ứng dụng/trang web rộng bạn có thể sử dụng jquery:

$('input').attr('autocomplete','off'); 

Hoặc nếu bạn đang như tôi và sử dụng góc + ui-router bạn có thể thử như sau:

Trong bạn index.html thêm đoạn mã sau:

<script type="text/javascript"> 
    setTimeout(function() { 
     $('input').attr('autocomplete', 'off'); 
    }, 2000); 
</script> 

Sau đó, để bao gồm các thay đổi trạng thái, hãy thêm thông tin sau vào bộ điều khiển gốc của bạn:

$rootScope.$on('$stateChangeStart', function() { 
       $timeout(function() { 
        $('input').attr('autocomplete', 'off'); 
       }, 2000); 
      }); 

Thời gian chờ là để html hiển thị trước khi áp dụng jquery.

Nếu bạn tìm thấy giải pháp tốt hơn, vui lòng cho tôi biết.

4

Từ Mozilla: Bạn có thể đặt tự động hoàn thành trên thẻ biểu mẫu thực tế <form autocomplete='off' ... >...</form> sẽ hoạt động cho toàn bộ biểu mẫu hoặc trên các thẻ <input type='text' /> riêng lẻ.

Trong kinh nghiệm của tôi về IE 11 và Edge đặt nó vào biểu mẫu hoạt động nhưng các thẻ riêng lẻ không hoạt động. Tôi đã thử nghiệm trên Chrome nhưng các trường đã không tự động hoàn thành.

Vui lòng đọc toàn bộ Article để biết thêm thông tin chi tiết.

LƯU Ý

Hầu hết các trình duyệt bỏ qua này cho các lĩnh vực đăng nhập.

+1

Điều này là tốt như một câu trả lời, chúc mừng! – JMK

+0

Trong Edge nó chỉ hoạt động khi đưa vào biểu mẫu, chứ không phải từng phần tử, nhờ –

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