मैंने अभी पाया है कि अगर आपके पास किसी साइट के लिए याद किया हुआ उपयोगकर्ता नाम और पासवर्ड है, तो Chrome का वर्तमान संस्करण आपके उपयोगकर्ता नाम / ईमेल पते को किसी भी क्षेत्र से पहले स्वत: ही भेज देगा type=password
। यह परवाह नहीं करता है कि क्षेत्र को क्या कहा जाता है - पासवर्ड मानने से पहले फ़ील्ड को अपना उपयोगकर्ता नाम मान लें।
पुराना हल
बस उपयोग करें <form autocomplete="off">
और यह पासवर्ड को प्रीफ़िलिंग करने से रोकता है और साथ ही किसी भी तरह के क्षेत्र को भरने के आधार पर जो एक ब्राउज़र बना सकता है (जो कि अक्सर गलत होता है) के आधार पर होता है। के रूप में उपयोग करने का विरोध किया गया है <input autocomplete="off">
जो पासवर्ड ऑटोफिल (क्रोम में जो है, फ़ायरफ़ॉक्स इसे मानता है) द्वारा बहुत अधिक अनदेखा किया गया लगता है।
अद्यतन समाधान
क्रोम अब नजरअंदाज करता है <form autocomplete="off">
। इसलिए मेरा मूल वर्कअराउंड (जिसे मैंने डिलीट कर दिया था) अब सभी गुस्से में है।
बस कुछ फ़ील्ड बनाएं और उन्हें "प्रदर्शन: कोई नहीं" के साथ छिपाएं। उदाहरण:
<!-- fake fields are a workaround for chrome autofill getting the wrong fields -->
<input style="display:none" type="text" name="fakeusernameremembered"/>
<input style="display:none" type="password" name="fakepasswordremembered"/>
फिर अपने असली खेतों को नीचे रखें।
अपनी टीम पर टिप्पणी या अन्य लोगों को जोड़ने के लिए याद रखें कि आप क्या कर रहे हैं!
मार्च 2016 को अपडेट करें
बस नवीनतम क्रोम के साथ परीक्षण किया गया - सभी अच्छे। यह अब एक काफी पुराना उत्तर है लेकिन मैं केवल इस बात का उल्लेख करना चाहता हूं कि हमारी टीम कई वर्षों से दर्जनों परियोजनाओं पर इसका उपयोग कर रही है। यह अभी भी नीचे कुछ टिप्पणियों के बावजूद बहुत अच्छा काम करता है। एक्सेसिबिलिटी को लेकर कोई समस्या नहीं है क्योंकि फील्ड्स का display:none
मतलब है कि उन्हें फोकस नहीं मिलता। जैसा कि मैंने उल्लेख किया है कि आपको उन्हें अपने वास्तविक क्षेत्रों से पहले रखने की आवश्यकता है ।
यदि आप अपने फॉर्म को संशोधित करने के लिए जावास्क्रिप्ट का उपयोग कर रहे हैं, तो एक अतिरिक्त चाल है जिसकी आपको आवश्यकता होगी। फॉर्म में हेरफेर करते हुए नकली फ़ील्ड दिखाएं और बाद में उन्हें फिर से एक मिलीसेकंड छिपा दें।
JQuery का उपयोग करके उदाहरण कोड (मान लें कि आप अपने नकली फ़ील्ड को एक वर्ग देते हैं):
$(".fake-autofill-fields").show();
// some DOM manipulation/ajax here
window.setTimeout(function () {
$(".fake-autofill-fields").hide();
},1);
जुलाई 2018 अपडेट करें
मेरा समाधान अब इतनी अच्छी तरह से काम नहीं कर रहा है क्योंकि क्रोम के विरोधी प्रयोज्यता विशेषज्ञों ने काम पर कड़ी मेहनत की है। लेकिन उन्होंने हमें एक हड्डी के रूप में फेंक दिया है:
<input type="password" name="whatever" autocomplete="new-password" />
यह काम करता है और ज्यादातर समस्या को हल करता है।
हालाँकि, यह तब काम नहीं करता है जब आपके पास पासवर्ड फ़ील्ड न हो लेकिन केवल एक ईमेल पता हो। यह भी मुश्किल हो सकता है कि यह पीले और प्रीफिलिंग को रोकने के लिए हो सकता है। इसे ठीक करने के लिए नकली खेतों के घोल का इस्तेमाल किया जा सकता है।
वास्तव में आपको कभी-कभी दो बहुत सारे नकली क्षेत्रों में छोड़ने की आवश्यकता होती है, और उन्हें विभिन्न स्थानों में आज़माएं। उदाहरण के लिए, मेरे पास मेरे फ़ॉर्म की शुरुआत में पहले से ही नकली फ़ील्ड थे, लेकिन क्रोम ने हाल ही में अपने 'ईमेल' फ़ील्ड को फिर से प्रीफ़िल करना शुरू कर दिया - तो फिर मैं 'ईमेल' फ़ील्ड से ठीक पहले दोगुना और अधिक नकली फ़ील्ड में डाल दिया, और उसने इसे ठीक कर दिया । फ़ील्ड के पहले या दूसरे भाग को हटाने से गलत ओवरफॉइल ऑटोफ़िल का संकेत मिलता है।
अद्यतन मार्च 2020
यह स्पष्ट नहीं है कि क्या और कब यह समाधान अभी भी काम करता है। यह अभी भी कभी-कभी काम करता दिखाई देता है लेकिन हर समय नहीं।
नीचे दी गई टिप्पणियों में आपको कुछ संकेत मिलेंगे। सिर्फ @anilyeni द्वारा जोड़ा गया कुछ और जांच के लायक हो सकता है:
जैसा कि मैंने देखा, autocomplete="off"
क्रोम 80 पर काम करता है, अगर 3 तत्वों से कम है <form>
। मुझे नहीं पता कि इसके बारे में क्या तर्क है या संबंधित दस्तावेज क्या है।
इसके अलावा @ डब्रोक्स से यह प्रासंगिक हो सकता है, हालांकि मैंने इसका परीक्षण नहीं किया है:
ट्रिक के लिए बहुत बहुत धन्यवाद, लेकिन कृपया जवाब अपडेट करें, जैसा display:none;
कि अब और काम नहीं position: fixed;top:-100px;left:-100px; width:5px;
करता है , लेकिन :)
अद्यतन APRIL 2020
इस विशेषता के लिए क्रोम का विशेष मूल्य काम कर रहा है: (इनपुट पर परीक्षण किया गया - लेकिन मेरे द्वारा नहीं)
autocomplete="chrome-off"