दिलचस्प पोस्ट
क्या वर्ग कोष्ठकों को यूआरएल में अनुमति है? क्या ओएलएपी डेटाबेस को पढ़ने के प्रदर्शन के लिए अस्वीकृत किया जाना चाहिए? यूनिक्स जैसी सिस्टम से एक अद्वितीय आईडी प्राप्त करना कैसे एक TextView के marquee की दिशा को उल्टा करने के लिए अनिर्धारित वैरिएबल का मूल्य क्या होगा? ListView में छवियों के आलसी लोड एक एक्कार्डियन के समान एक JQuery प्लग-इन की खोज की जा रही है, लेकिन यह कई बार एक बार में बंद होने की अनुमति देता है मैं जावा में थोड़ी देर लूप कैसे निकलूं? रूबी में मैं अस्थायी रूप से stderr पुनर्निर्देशित कैसे करूं? मैं SQL सर्वर 2005 में एक स्तंभ के रूप में यादृच्छिक संख्या कैसे लौटाऊँ? जावास्क्रिप्ट: स्ट्रिंग क्लास के लिए विधि जोड़ें mysql_connect वी.एस. mysql_pconnect ऐप डिलीगेट से प्राप्त करने के अलावा दृश्यकंट्रोलर के लिए प्रबंधित ऑब्जेक्ट कॉन्टैक्ट प्राप्त करने के लिए कैसे करें? पायथन – मुद्रित आइटम हटाएं और बदलें एरे बनाम वेक्टर: परिचयात्मक समानताएं और अंतर

क्रोम ब्राउज़र स्वतः पूर्ण = बंद को अनदेखा कर रहा है

मैंने एक वेब अनुप्रयोग बनाया है जो एक टैग बॉक्स ड्रॉप डाउन का उपयोग करता है, यह मेरे पसंदीदा ब्राउज़र क्रोम (संस्करण 21.0.1180.89) को छोड़कर सभी ब्राउज़रों में बहुत अच्छा काम करता है।

दोनों इनपुट फ़ील्ड और फ़ॉर्म फ़ील्ड में autocomplete="off" विशेषता होने के बावजूद, क्रोम फ़ील्ड के लिए पिछली प्रविष्टियों के इतिहास को ड्रॉप करने पर जोर देता है, जो टैगबॉक्स सूची को समाप्त कर रहा है।

Solutions Collecting From Web of "क्रोम ब्राउज़र स्वतः पूर्ण = बंद को अनदेखा कर रहा है"

मेरे अनुभव में, क्रोम केवल पहले <input type="password"> और पिछले <input> स्वत: पूर्ण कर देता है। तो मैंने कहा:

 <input style="display:none"> <input type="password" style="display:none"> 

<form> के शीर्ष पर और मामला हल किया गया था।

ऐसा प्रतीत होता है कि क्रोम अब autocomplete="off" उपेक्षा करता है, जब तक कि <form autocomplete="off"> टैग पर नहीं है।

सबसे अच्छा समाधान:

 <input type="text" name="email"> <input type="password" name="password" autocomplete="new-password"> 

या

 <input type="email" name="email"> <input type="password" name="password" autocomplete="new-password"> 

काम में:

  • क्रोम: 49, 50, 51, 52, 53, 54, 55, 56, 57 और 58

  • फ़ायरफ़ॉक्स: 44, 45, 46, 47, 48, 49 और 50

एक विश्वसनीय समाधान के लिए, आप अपने कोड को अपने लेआउट पृष्ठ पर जोड़ सकते हैं:

 <div style="display: none;"> <input type="text" id="PreventChromeAutocomplete" name="PreventChromeAutocomplete" autocomplete="address-level4" /> </div> 

क्रोम स्वत: पूर्ण का सम्मान करता है = बंद तब होता है जब फॉर्म में कम से कम एक अन्य इनपुट तत्व किसी भी अन्य स्वत: पूर्ण मूल्य के साथ होता है।

यह पासवर्ड फ़ील्ड के साथ काम नहीं करेगा – उनको क्रोम में बहुत अलग तरह से नियंत्रित किया जाता है अधिक विवरणों के लिए https://code.google.com/p/chromium/issues/detail?id=468153 देखें।

अद्यतन करें: क्रोमियम टीम 11 मार्च 2016 द्वारा बग "फिक्स नहीं होगा" के रूप में बंद हुआ। पूर्ण विवरण के लिए, मेरी मूल रूप से दायर बग रिपोर्ट में पिछली टिप्पणी देखें। टीएल; डीआर: स्वत: पूर्णण प्रदर्शन करने वाले क्रोम से बचने के लिए स्वतः स्वत: पूर्ण गुणों जैसे स्वत: पूर्ण = "नई-सड़क-पता" का प्रयोग करें

क्रोम वर्जन 34 अब autocomplete=off उपेक्षा करता autocomplete=off , यह देखें ।

क्या यह एक अच्छी बात है या एक बुरी चीज है पर बहुत सारी चर्चाएं ? क्या आपके विचार है?

वर्तमान में समाधान type="search" का उपयोग करना है Google एक प्रकार की खोज के साथ इनपुट पर ऑटोफ़िल लागू नहीं करता है

देखें: https://twitter.com/Paul_Kinlan/status/596613148985171968

अपडेट 04/04/2016: ऐसा लगता है कि यह ठीक है! http://codereview.chromium.org/1473733008 देखें

आधुनिक दृष्टिकोण

बस अपने इनपुट को readonly , और फ़ोकस पर, इसे हटा दें यह एक बहुत आसान तरीका है और ब्राउजरों readonly आदानों को आबाद नहीं करेगा। इसलिए, यह विधि स्वीकार की जाती है और कभी भी भविष्य के ब्राउज़र अपडेट्स द्वारा कभी भी ओवरराइट नहीं की जाएगी।

 <input type="text" onfocus="this.removeAttribute('readonly');" readonly /> 

तदनुसार अपने इनपुट को स्टाइल करें ताकि यह एक readonly इनपुट की तरह न हो

 input[readonly] { cursor: text; background-color: #fff; } 

कार्यरत उदाहरण

ब्राउज़र स्वत: पूर्ण = बंद ऑटो के बारे में परवाह नहीं करता है या गलत पाठ फ़ील्ड में प्रमाण पत्र भी भरता है?

मैंने पासवर्ड फ़ील्ड को केवल-पढ़ने के लिए सेट करके इसे सक्रिय करके तय किया है, जब उपयोगकर्ता उस पर क्लिक करता है या इस फ़ील्ड के टैब-कुंजी का उपयोग करता है।

ब्राउज़र ऑटोफिल को ठीक करें: केवल पढ़ने के लिए और फोकस पर लिखने योग्य सेट करें (माउस क्लिक करके और फ़ील्ड के माध्यम से टैबबाइंग )

  <input type="password" readonly onfocus="$(this).removeAttr('readonly');"/> 

अपडेट: मोबाइल सफारी फ़ील्ड में कर्सर सेट करता है, लेकिन वर्चुअल कीबोर्ड नहीं दिखाता है। नई फिक्स पहले की तरह काम करता है लेकिन वर्चुअल कीबोर्ड संभालता है:

 <input id="email" readonly type="email" onfocus="if (this.hasAttribute('readonly')) { this.removeAttribute('readonly'); // fix for mobile safari to show virtual keyboard this.blur(); this.focus(); }" /> 

लाइव डेमो https://jsfiddle.net/danielsuess/n0scguv6/

// अद्यतनअंड

वैसे, मेरे अवलोकन पर अधिक जानकारी :

कभी-कभी मैं क्रोम और सफारी पर यह अजीब व्यवहार देखता हूं, जब एक ही रूप में पासवर्ड फ़ील्ड होते हैं मुझे लगता है, ब्राउज़र आपके सहेजे गए क्रेडेंशियल सम्मिलित करने के लिए पासवर्ड फ़ील्ड की तलाश करता है। फिर यह उपयोगकर्ता नाम सबसे निकटतम पाठ-इनपुट फ़ील्ड में स्वतः भरता है, जो पहले डोम में पासवर्ड फ़ील्ड से पहले दिखाई देता है (बस अवलोकन के कारण अनुमान लगाना )। जैसा कि ब्राउज़र आखिरी उदाहरण है और आप उसे नियंत्रित नहीं कर सकते, कभी-कभी यहां तक ​​कि स्वत: पूर्ण = बंद क्रेडेंशियल्स को गलत फ़ील्ड में भरने से नहीं रोकेंगे , लेकिन उपयोगकर्ता या उपनाम फ़ील्ड नहीं।

ठीक है, पार्टी के लिए थोड़ी देर देर हो चुकी है, लेकिन ऐसा लगता है कि इस बात पर कुछ गलतफहमी है कि कैसे autocomplete और काम नहीं करना चाहिए। HTML विनिर्देशों के अनुसार, उपयोगकर्ता एजेंट (इस मामले में क्रोम) autocomplete : autocomplete ओवरराइड कर सकते हैं:

https://www.w3.org/TR/html5/forms.html#autofilling-form-controls:-the-autocomplete-attribute

एक उपयोगकर्ता एजेंट उपयोगकर्ता को एक तत्व के ऑटोफिल फ़ील्ड नाम को ओवरराइड करने की अनुमति दे सकता है, उदा। पृष्ठ लेखक के आपत्तियों के बावजूद मूल्यों को याद रखने और प्रीफ़िल्ल्ड करने के लिए इसे "ऑफ़" से "ऑन" में बदलने के लिए, या हमेशा "बंद" मान। हालांकि, उपयोगकर्ता एजेंटों को उपयोगकर्ताओं को "बंद" से "ऑन" या अन्य मूल्यों पर ऑटफिल फ़ील्ड नाम को क्षुब्ध रूप से ओवरराइड करने की अनुमति नहीं दी जानी चाहिए, क्योंकि उपयोगकर्ता के लिए महत्वपूर्ण सुरक्षा निहितार्थ हैं यदि सभी मान हमेशा याद रखे जाते हैं, चाहे साइट की प्राथमिकताओं पर ध्यान दिए बिना।

इसलिए क्रोम के मामले में, डेवलपर्स ने अनिवार्य रूप से कहा है "हम उपयोगकर्ता को अपनी वरीयताओं में तय करने के लिए इसे छोड़ देंगे कि क्या वे autocomplete काम करना चाहते हैं या नहीं। अगर आप यह नहीं चाहते हैं, तो इसे अपने ब्राउज़र में सक्षम न करें "।

हालांकि, ऐसा प्रतीत होता है कि मेरी पसंद के लिए यह थोड़ा अधिक उत्साही है, लेकिन यह ऐसा तरीका है। विनिर्देशन में इस तरह के एक कदम के संभावित सुरक्षा प्रभावों पर भी चर्चा की गई है:

"ऑफ़" कीवर्ड इंगित करता है कि नियंत्रण का इनपुट डेटा विशेष रूप से संवेदनशील है (उदाहरण के लिए परमाणु हथियार के लिए सक्रियण कोड); या यह एक ऐसा मूल्य है जिसे कभी भी पुन: उपयोग नहीं किया जाएगा (उदाहरण के लिए एक बैंक लॉगिन के लिए एक बार-बार की कुंजी) और यूज़र को प्री-फिल करने के लिए UA पर भरोसा करने के बजाय प्रत्येक बार डेटा को स्पष्ट रूप से दर्ज करना होगा उसके लिए मूल्य; या यह दस्तावेज अपनी स्वयं की पूर्ण व्यवस्था प्रदान करता है और यह नहीं चाहता कि उपयोगकर्ता एजेंट स्वतः पूर्णतया मूल्य प्रदान करें।

तो हर किसी के रूप में एक ही निराशा का सामना करने के बाद, मुझे एक समाधान मिला जो मेरे लिए काम करता है यह autocomplete="false" उत्तरों में नस के समान है

एक मोज़िला लेख बिल्कुल इस समस्या से बोलता है:

https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion

कुछ मामलों में, ब्राउज़र स्वत: पूर्णतया मूल्यों का सुझाव देते रहेंगे, भले ही स्वत: पूर्णण विशेषता को बंद किया गया हो। डेवलपर्स के लिए यह अप्रत्याशित व्यवहार काफी परेशान हो सकता है वास्तविकता को वास्तव में मजबूर करने की चाल विशेषता को एक यादृच्छिक स्ट्रिंग प्रदान करना है

तो निम्न कोड काम करना चाहिए :

 autocomplete="nope" 

और इसलिए निम्न में से प्रत्येक का होना चाहिए:

 autocomplete="false" autocomplete="foo" autocomplete="bar" 

मैं देख रहा हूँ कि यह मुद्दा यह है कि ब्राउज़र एजेंट autocomplete विशेषता को जानने के लिए पर्याप्त स्मार्ट हो सकता है और अगली बार इसे फ़ॉर्म देखता है। अगर यह ऐसा करता है, तो एक ही रास्ता मैं अभी भी समस्या के चारों ओर पाने के लिए देख सकता हूँ गतिशील रूप से autocomplete पूर्णांक मान बदल जाएगा, जब पृष्ठ तैयार हो जाएगा।

उल्लेख के एक बिंदु यह है कि कई ब्राउज़र लॉगिन क्षेत्रों (उपयोगकर्ता नाम और पासवर्ड) के लिए autocomplete सेटिंग्स की उपेक्षा करेंगे। मोज़ीला लेख के अनुसार:

इस कारण से, कई आधुनिक ब्राउज़र्स लॉगिन क्षेत्रों के लिए स्वत: पूर्ण = "बंद" का समर्थन नहीं करते हैं

  • यदि कोई साइट स्वत: पूर्ण = "बंद" एक फ़ॉर्म के लिए सेट करती है, और फ़ॉर्म में उपयोगकर्ता नाम और पासवर्ड इनपुट फ़ील्ड शामिल हैं, तो ब्राउज़र अभी भी इस लॉगिन को याद रखने की पेशकश करेगा, और यदि उपयोगकर्ता सहमत हो जाता है, ब्राउज़र अगली बार उन फ़ील्ड को स्वत: भरण कर देगा उपयोगकर्ता इस पृष्ठ का दौरा करता है।
  • यदि कोई साइट उपयोगकर्ता नाम और पासवर्ड इनपुट फ़ील्ड के लिए स्वत: पूर्ण = "बंद" सेट करती है, तो ब्राउज़र अभी भी इस लॉगिन को याद रखने की पेशकश करेगा, और अगर उपयोगकर्ता सहमत होगा, तो ब्राउज़र उस फ़ील्ड को स्वत: भरण करेगा, अगली बार जब उपयोगकर्ता इस पेज पर जाएंगे

यह फ़ायरफ़ॉक्स (संस्करण 38 के बाद से), Google क्रोम (34 वर्ष से) और इंटरनेट एक्सप्लोरर (संस्करण 11 के बाद से) में व्यवहार है।

अंत में एक छोटी सी जानकारी है कि क्या विशेषता form तत्व या input तत्व पर आधारित है। इस युक्ति का फिर जवाब है:

अगर स्वतः पूर्ण विशेषता को छोड़ा जाता है, तो तत्व के फ़ॉर्म स्वामी की स्वत: पूर्णतया विशेषता की स्थिति से संबंधित डिफ़ॉल्ट मान का उपयोग इसके बजाय (या तो "चालू" या "बंद") किया जाता है। अगर कोई फॉर्म स्वामी नहीं है, तो मूल्य "पर" उपयोग किया जाता है

इसलिए। इसे फार्म पर डाल देना सभी इनपुट क्षेत्रों पर लागू होना चाहिए। इसे एक व्यक्तिगत तत्व पर डालकर उस तत्व पर लागू होना चाहिए (भले ही कोई फॉर्म पर नहीं हो)। यदि autocomplete बिल्कुल सेट नहीं है, तो यह डिफ़ॉल्ट on

सारांश

संपूर्ण फ़ॉर्म पर autocomplete को अक्षम करने के लिए:

 <form autocomplete="off" ...> 

या यदि आप गतिशील रूप से इसे करने की आवश्यकता है:

 <form autocomplete="random-string" ...> 

किसी व्यक्तिगत तत्व पर autocomplete को अक्षम करने के लिए (चाहे प्रपत्र सेटिंग मौजूद हो या न हो)

 <input autocomplete="off" ...> 

या यदि आप गतिशील रूप से इसे करने की आवश्यकता है:

 <input autocomplete="random-string" ...> 

और याद रखें कि कुछ उपयोगकर्ता एजेंट autocomplete को अक्षम करने के लिए आपके सबसे मुश्किल लड़े हुए प्रयासों को भी ओवरराइड कर सकते हैं।

क्रोम को autocomplete="off" , मैं इसे एक बेवकूफ तरीके से हल करता हूं जो "वास्तविक" एक को भरने के बजाय इसे भरने के लिए क्रोम को धोखा देने के लिए "नकली इनपुट" का उपयोग कर रहा है

उदाहरण:

 <input type="text" name="username" style="display:none" value="fake input" /> <input type="text" name="username" value="real input"/> 

क्रोम "नकली इनपुट" भर जाएगा, और जब सबमिट करें, सर्वर "वास्तविक इनपुट" मान लेगा।

मैं इस समस्या का समाधान करने के लिए इस उत्तर को पोस्ट कर रहा हूं। मैं वर्तमान में क्रोम 49 का इस्तेमाल कर रहा हूं और इस एक के लिए कोई जवाब नहीं दिया। मैं अन्य ब्राउज़रों और पिछले संस्करणों के साथ काम करने का समाधान भी देख रहा हूं।

अपने कोड की शुरुआत में इस कोड को रखें

 <div style="display: none;"> <input type="text" autocomplete="new-password"> <input type="password" autocomplete="new-password"> </div> 

फिर, अपने असली पासवर्ड के लिए, उपयोग करें

 <input type="password" name="password" autocomplete="new-password"> 

इस उत्तर पर टिप्पणी करें कि यह अब काम नहीं कर रहा है या यदि आपको किसी अन्य ब्राउज़र या संस्करण के साथ समस्या मिलती है

स्वीकृत:

  • क्रोम: 49
  • फ़ायरफ़ॉक्स: 44, 45
  • बढ़त: 25
  • इंटरनेट एक्सप्लोरर: 11

आप autocomplete="new-password" उपयोग कर सकते हैं

 <input type="email" name="email"> <input type="password" name="password" autocomplete="new-password"> 

काम में:

  • क्रोम: 53, 54, 55
  • फ़ायरफ़ॉक्स: 48, 49, 50

किसी को भी इस के समाधान की तलाश में, मैं आखिरकार इसे समझता हूं

अगर क्रोम पृष्ठ एक एचटीएमएल 5 पृष्ठ है (मैं एक्सएचटीएमएल का उपयोग कर रहा था तो) केवल क्रोम का स्वत: पूर्णांक = "बंद" का पालन करता है

मैंने अपने पेज को एचटीएमएल 5 में परिवर्तित कर दिया और समस्या दूर चली गई (फेसपैम)।

सिर्फ पिछले हफ्ते तक, नीचे दिए गए दो समाधान क्रोम, आईई और फ़ायरफ़ॉक्स के लिए काम करने लगे। लेकिन क्रोम संस्करण 48 (और अभी भी 49 में) के रिलीज के साथ, वे अब काम नहीं करते हैं:

  1. फॉर्म के शीर्ष पर निम्नलिखित है:
 <input style="display:none" type="text" name="fakeUsername"/> <input style="display:none" type="password" name="fakePassword"/> 
  1. पासवर्ड इनपुट तत्व में निम्नलिखित है:

    स्वत: पूर्ण = "बंद"

इसलिए इसे शीघ्रता से ठीक करने के लिए, पहले मैंने एक प्रमुख हैक का प्रयोग शुरू में अक्षम करने के लिए पासवर्ड इनपुट तत्व को सेट करने की कोशिश की और तब इसे फिर से सक्षम करने के लिए दस्तावेज़ तैयार फ़ंक्शन में setTimeout का उपयोग किया।

 setTimeout(function(){$('#PasswordData').prop('disabled', false);}, 50); 

लेकिन यह इतना पागल लग रहा था और मैंने कुछ और खोज की थी और टैंबल का जवाब दिया क्रोम ऑटोफिल को अक्षम करने में। उनका जवाब पासवर्ड इनपुट में स्वतः पूर्ण = "नया-पासवर्ड" का उपयोग करना है और यह सभी ब्राउज़रों पर काम करने के लिए प्रतीत होता है (मैंने इस स्तर पर ऊपर दिए गए मेरा फ़िक्स नंबर 1 रखा है)।

Google Chrome डेवलपर चर्चा में यहां लिंक है: https://code.google.com/p/chromium/issues/detail?id=370363#c7

स्वत: पूर्ण = "बंद" के बजाय स्वत: पूर्ण = "गलत" का उपयोग करें;)

से: https://stackoverflow.com/a/29582380/75799

क्रोम 42 के रूप में, इस धागे में कोई समाधान / हैक्स नहीं है ( 2015-05-21T12:50:23+00:00 ) के रूप में एक अलग-अलग फ़ील्ड या संपूर्ण फॉर्म के लिए स्वत: पूर्ण को अक्षम करने के लिए कार्य।

संपादित करें: मैंने पाया है कि वास्तव में आपको केवल एक फॉर्मेट में एक डमी ईमेल फ़ील्ड डालने की आवश्यकता है (आप इसे display: none साथ छिपा सकते हैं display: none ) मुझे लगता है कि क्रोम प्रत्येक स्वत: पूर्णतया फ़ील्ड के साथ किसी प्रकार के फ़ॉर्म हस्ताक्षर स्टोर करता है और एक अन्य ईमेल फ़ील्ड सहित इस हस्ताक्षर को दूषित करता है और स्वतः पूर्ण होने से रोकता है।

 <form action="/login" method="post"> <input type="email" name="fake_email" style="display:none" aria-hidden="true"> <input type="email" name="email"> <input type="password" name="password"> <input type="submit"> </form> 

अच्छी खबर यह है कि चूंकि "फॉर्म हस्ताक्षर" इसके द्वारा भ्रष्ट है, कोई भी क्षेत्र स्वत: पूर्ण नहीं है, इसलिए प्रस्तुत करने से पहले नकली खेतों को साफ करने के लिए कोई भी जेएस की आवश्यकता नहीं है।

पुराने उत्तर:

केवल एक चीज जो मुझे अभी भी व्यवहार्य साबित हुई है वह असली फ़ील्ड के पहले दो ईमेल प्रकार और पासवर्ड के डमी फ़ील्ड को सम्मिलित करना है। आप उन्हें display: none करने के लिए सेट कर सकते display: none उन्हें छिपाने के लिए display: none (यह उन क्षेत्रों को नजरअंदाज करने के लिए पर्याप्त स्मार्ट नहीं है):

 <form action="/login" method="post"> <input type="email" name="fake_email" style="display:none" aria-hidden="true"> <input type="password" name="fake_password" style="display:none" aria-hidden="true"> <input type="email" name="email"> <input type="password" name="password"> <input type="submit"> </form> 

दुर्भाग्यवश, फ़ील्ड आपके फ़ॉर्म के अंदर होनी चाहिए (अन्यथा इनपुट के दोनों सेट स्वतः भरण हैं)। इसलिए, नकली खेतों को वास्तव में अनदेखा करने के लिए आपको उन्हें साफ़ करने के लिए सबमिट करने के लिए कुछ जेएस को चलाने की आवश्यकता होगी:

 form.addEventListener('submit', function() { form.elements['fake_email'].value = ''; form.elements['fake_password'].value = ''; }); 

ऊपर से सूचना जो जावास्क्रिप्ट के साथ मूल्य समाशोधन स्वत: पूर्णतया ओवरराइड करने के लिए काम करती है। इसलिए अगर जेएस अक्षम के साथ उचित व्यवहार खोना स्वीकार्य है, तो आप क्रोम के लिए जेएस स्वतः पूर्ण "पॉलीफिल" के साथ इस सब को आसान बना सकते हैं:

 (function(document) { function polyfillAutocomplete(nodes) { for(var i = 0, length = nodes.length; i < length; i++) { if(nodes[i].getAttribute('autocomplete') === 'off') { nodes[i].value = ''; } } } setTimeout(function() { polyfillAutocomplete(document.getElementsByTagName('input')); polyfillAutocomplete(document.getElementsByTagName('textarea')); }, 1); })(window.document); 

क्रोम v। 34 के बाद, <form> टैग पर autocomplete="off" सेट नहीं करते हैं

इस कष्टप्रद व्यवहार से बचने के लिए मैंने परिवर्तन किए:

  1. name और पासवर्ड इनपुट का id निकालें
  2. इनपुट में एक क्लास रखें (उदा .: passwordInput इनपुट)

(अब तक, क्रोम इनपुट पर सहेजे गए पासवर्ड नहीं डालते, लेकिन फ़ॉर्म अब टूटा हुआ है)

अंत में, फ़ॉर्म का काम करने के लिए, इस कोड को चलाने के लिए डाल दें जब उपयोगकर्ता सबमिट बटन पर क्लिक करें, या जब भी आप फ़ॉर्म जमा करने के लिए ट्रिगर करना चाहते हैं:

 var sI = $(".passwordInput")[0]; $(sI).attr("id", "password"); $(sI).attr("name", "password"); 

मेरे मामले में, मैं पासवर्ड इनपुट में id="password" name="password" का इस्तेमाल करता था, इसलिए मैं submition को ट्रिगर करने से पहले उन्हें वापस डाल दिया।

मैं सिर्फ क्रोम 49 में अपडेट हुआ हूं और डाइओगो सीड का समाधान अब और काम नहीं करता है।

मैंने पृष्ठ को लोड होने के बाद रन-टाइम पर फ़ील्ड को अलग-अलग तरीके से छिपाया और निकाला।

क्रोम अब क्रेडेंशियल्स को पहले प्रदर्शित type="password" फ़ील्ड और इसके पिछले type="text" फ़ील्ड में लागू करने के मूल कार्यवाही पर ध्यान नहीं देता, इसलिए मैंने सीएसएस visibility: hidden; का उपयोग करके दोनों फ़ील्ड visibility: hidden;

 <!-- HTML --> <form> <!-- Fake fields --> <input class="chromeHack-autocomplete"> <input type="password" class="chromeHack-autocomplete"> <input type="text" placeholder="e-mail" autocomplete="off" /> <input type="password" placeholder="Password" autocomplete="off" /> </form> <!-- CSS --> .chromeHack-autocomplete { height: 0px !important; width: 0px !important; opacity: 0 !important; padding: 0 !important; margin: 0 !important; } <!--JavaScript (jQuery) --> jQuery(window).load(function() { $(".chromeHack-autocomplete").delay(100).hide(0, function() { $(this).remove(); }); }); 

मुझे पता है कि यह बहुत सुंदर नहीं लग सकता है लेकिन यह काम करता है

क्रोम 48+ में इस समाधान का उपयोग करें:

  1. वास्तविक क्षेत्रों से पहले नकली फ़ील्ड डालें:

     <form autocomplete="off"> <input name="fake_email" class="visually-hidden" type="text"> <input name="fake_password" class="visually-hidden" type="password"> <input autocomplete="off" name="email" type="text"> <input autocomplete="off" name="password" type="password"> </form> 
  2. नकली फ़ील्ड छुपाएं:

     .visually-hidden { margin: -1px; padding: 0; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); clip: rect(0, 0, 0, 0); position: absolute; } 
  3. तुमने यह किया!

इसके अलावा यह पुराने संस्करणों के लिए काम करेगा।

हालांकि मैं सहमत हूं कि स्वत: पूर्ण उपयोगकर्ता विकल्प होना चाहिए, ऐसे समय होते हैं जब क्रोम अधिक से अधिक उत्साहित होता है (अन्य ब्राउज़र भी हो सकते हैं)। उदाहरण के लिए, एक अलग नाम के साथ एक पासवर्ड फ़ील्ड अभी भी सहेजे गए पासवर्ड से स्वतः भर गया है और पिछले फ़ील्ड में यूज़रनेम के साथ पॉपुलेटेड है। यह विशेष रूप से बेकार है जब फ़ॉर्म वेब अनुप्रयोग के लिए एक उपयोगकर्ता प्रबंधन प्रपत्र होता है और आप स्वत: भरण को अपने स्वयं के प्रमाणिकता के साथ पॉप्युलेट करने के लिए नहीं चाहते हैं।

क्रोम पूरी तरह से स्वत: पूर्ण = "बंद" की अनदेखी कर रहा है यद्यपि जेएस हैक्स अच्छी तरह से काम कर सकता है, मुझे एक आसान तरीका मिला जो लेखन के समय काम करता है:

पासवर्ड फ़ील्ड का नियंत्रण अक्षर 8 ( "\x08" में PHP या &#8; HTML में) के लिए सेट करें इससे Chrome को फ़ील्ड भरने से रोकता है क्योंकि इसमें एक मान है, लेकिन कोई वास्तविक मान दर्ज नहीं किया गया है क्योंकि यह बैकस्पेस वर्ण है।

हां यह अभी भी एक हैक है, लेकिन यह मेरे लिए काम करता है YMMV।

autocomplete=off आधुनिक ब्राउज़रों में बड़े पैमाने पर नजरअंदाज किया जाता है – मुख्य रूप से पासवर्ड प्रबंधकों आदि के कारण।

आप यह autocomplete="new-password" जोड़ने का प्रयास कर सकते autocomplete="new-password" इसे सभी ब्राउज़र द्वारा पूरी तरह समर्थित नहीं है, लेकिन यह कुछ पर काम करता है

मुझे यह समाधान सबसे उपयुक्त माना गया है:

 function clearChromeAutocomplete() { // not possible, let's try: if (navigator.userAgent.toLowerCase().indexOf('chrome') >= 0) { document.getElementById('adminForm').setAttribute('autocomplete', 'off'); setTimeout(function () { document.getElementById('adminForm').setAttribute('autocomplete', 'on'); }, 1500); } } 

डोम तैयार होने के बाद, या फ़ॉर्म रेंडर के बाद इसे लोड किया जाना चाहिए।

मैंने एक और तरीके से हल किया आप यह कोशिश कर सकते हैं

 <input id="passfld" type="text" autocomplete="off" /> <script type="text/javascript"> // Using jQuery $(function(){ setTimeout(function(){ $("input#passfld").attr("type","password"); },10); }); // or in pure javascript window.onload=function(){ setTimeout(function(){ document.getElementById('passfld').type = 'password'; },10); } </script> 

स्वत: भरण को रोकने के लिए छुपा इनपुट तत्व चाल अभी भी काम करता है (क्रोम 43), लेकिन एक बात ध्यान में रखना है कि क्रोम प्लेसहोल्डर टैग के आधार पर ऑटोफ़िल करने का प्रयास करेगा। आपको छुपा इनपुट तत्व के प्लेसहोल्डर को उस इनपुट से मिलान करने की आवश्यकता है जिसे आप अक्षम करने का प्रयास कर रहे हैं

मेरे मामले में, मेरे पास 'सिटी या ज़िप' का एक प्लेसहोल्डर पाठ वाला क्षेत्र था, जिसे मैं Google प्लेस स्वतः पूर्ण के साथ प्रयोग कर रहा था। ऐसा प्रतीत हुआ कि यह स्वत: भरण करने का प्रयास कर रहा था जैसे कि यह किसी पते के रूप का हिस्सा था। यह चाल तब तक काम नहीं करती जब तक मैं एक ही प्लेसहोल्डर को असली इनपुट पर छिपे हुए तत्वों पर नहीं डालता:

 <input style="display:none;" type="text" placeholder="City or Zip" /> <input autocomplete="off" type="text" placeholder="City or Zip" /> 

मेरे पास ऐसी कोई समस्या थी जहां इनपुट फ़ील्ड ने कोई नाम या ईमेल लिया था मैंने स्वत: पूर्ण = "बंद" सेट किया लेकिन क्रोम ने सुझावों को मजबूर कर दिया। इसे बाहर कर दिया गया क्योंकि प्लेसहोल्डर पाठ में "नाम" और "ईमेल" शब्द था

उदाहरण के लिए

 <input type="text" placeholder="name or email" autocomplete="off" /> 

प्लेसहोल्डर में शब्दों में शून्य चौड़ाई की जगह डालकर मुझे इसके आसपास मिल गया। कोई और अधिक क्रोम स्वतः पूर्ण नहीं है

 <input type="text" placeholder="nam&#8203;e or emai&#8203;l" autocomplete="off" /> 

सभी समाधानों की कोशिश करने के बाद, क्रोम संस्करण के लिए काम करने वाला ऐसा लगता है: 45, पासवर्ड फ़ील्ड वाले फ़ॉर्म के साथ:

  jQuery('document').ready(function(){ //For disabling Chrome Autocomplete jQuery( ":text" ).attr('autocomplete','pre'+Math.random(0,100000000)); }); 

ऐसा लगता है कि यह पहले से ही तय है! https://codereview.chromium.org/1473733008 देखें

Here is what worked for me on Chrome Version 51.0.2704.106. <input id="user_name" type="text" name="user_name" autocomplete="off" required /> and in combination with <input id="user_password" type="password" name="user_password" autocomplete="new-password" required /> . My problem was that after implementing new-password it would still show a drop-down of usernames on the user_name field.

Need to use AutoComplete='false' which will work on chrome browser also Used code

 <ng-form autocomplete="false"> ..... </ng-form> 

I've just tried the following, and it appears to do the trick on Chrome 53 – it also disables the "Use password for:" drop down when entering the password field.

Simply set your password input type to text , and then add the onfocus handler (inline or via jQuery/vanilla JS) to set the type to password :

 onfocus="this.setAttribute('type','password')" 

Or even better:

 onfocus="if(this.getAttribute('type')==='text') this.setAttribute('type','password')"