आप वेब फ़ॉर्म फ़ील्ड / इनपुट टैग पर ब्राउज़र स्वत: पूर्ण को कैसे अक्षम करते हैं?


2789

आप autocompleteकिसी विशिष्ट input(या form field) के लिए प्रमुख ब्राउज़रों में कैसे अक्षम होते हैं ?


2
कुछ प्रणालियों में जहां परीक्षकों को मैन्युअल रूप से बहुत सारी जानकारी दर्ज करनी होती है और यह विन्यास योग्य होने के लिए विकल्प के रूप में उपयोगी हो सकती है ताकि परीक्षण करते समय आप इसे निष्क्रिय कर सकें और बस 'टैब> डाउन एरो> टैब> डाउन एरो आदि को हिट करें। । '
साइमन_वेवर

जवाबों:


2623

फ़ायरफ़ॉक्स 30 autocomplete="off"पासवर्ड की उपेक्षा करता है, इसके बजाय उपयोगकर्ता को संकेत देने के लिए कि क्या पासवर्ड क्लाइंट पर संग्रहीत किया जाना चाहिए। 5 मई, 2014 से निम्नलिखित टिप्पणी पर ध्यान दें :

  • पासवर्ड प्रबंधक हमेशा संकेत देता है कि क्या वह पासवर्ड सहेजना चाहता है। उपयोगकर्ता से अनुमति के बिना पासवर्ड सहेजे नहीं जाते हैं।
  • हम IE और क्रोम के बाद इस परिवर्तन को लागू करने वाले तीसरे ब्राउज़र हैं।

मोज़िला डेवलपर नेटवर्क प्रलेखन के अनुसार , बूलियन फॉर्म एलिमेंट विशेषता autocompleteफॉर्म डेटा को पुराने ब्राउज़रों में कैश्ड होने से रोकती है।

<input type="text" name="foo" autocomplete="off" />

45
यह मेरे लिए फ़ायरफ़ॉक्स 3.0 में काम नहीं करता था। मुझे INPUT के बजाय FORM में स्वत: पूर्ण विशेषता डालनी थी।
विंस्टन फस्सेट

17
स्वतः पूर्ण को केवल HTML 5 मानकों में परिभाषित किया गया है, इसलिए यह HTML 4 के खिलाफ आपके द्वारा चलाए जा रहे किसी भी सत्यापन को तोड़ देगा। * ...
Jrgns

96
@Winston, आप इसे दोनों फार्म पर, और इनपुट तत्व पर ही रखना चाहिए। इस तरह से आप ब्राउज़रों की सभी गैर-मानकता को कवर करते हैं।
AviD

83
और याद रखें कि आप अपने webapp का परीक्षण करने से पहले अपने स्वत: पूर्ण = एक्सटेंशन पर (यदि आप Chrome का उपयोग कर रहे हैं) अक्षम करें । और आप मेरी तरह असली मूर्खतापूर्ण महसूस करेंगे। ;)
जो लिस


314

इसके अलावा autocomplete=off, आपके पास आपके फॉर्म फ़ील्ड के नाम भी कोड द्वारा यादृच्छिक हो सकते हैं जो पेज को उत्पन्न करता है, शायद नामों के अंत में कुछ सत्र-विशिष्ट स्ट्रिंग जोड़कर।

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


10
यह स्वत: पूर्ण = "बंद" का उपयोग करने की तुलना में बहुत बेहतर समाधान है। आपको बस इतना करना हर पृष्ठ लोड पर एक नया नाम पैदा करते हैं और भविष्य में उपयोग के लिए एक $ _SESSION को उस नाम को बचाने के है:$_SESSION['codefield_name'] = md5(uniqid('auth', true));
ENCHANCE

78
नहीं, यह एक बेहतर समाधान नहीं है, क्योंकि इस सेटिंग के लिए वरीयता का मूल उपयोगकर्ता एजेंट है जिसे वेब ब्राउज़र के रूप में भी जाना जाता है। कुछ व्यवहार का समर्थन करने के बीच एक अंतर है (जो एचटीएमएल 5 करने का प्रयास करता है) और उपयोगकर्ता की ओर से निर्णय लेने के लिए इसे मजबूर करता है, जो आप सुझाव देते हैं कि "बहुत बेहतर समाधान" है।
amn

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

8
XSRF हमलों के बारे में, मुझे यकीन नहीं है कि आप किस प्रकार के हमले का चित्रण कर रहे थे, लेकिन क्या हमलावर उसी तरह से पट्टी नहीं काट सकता जिस तरह से आप खेतों की पहचान करने के लिए सर्वर-साइड करते हैं? या अगर हमलावर खेतों को पोस्ट कर रहा है, तो क्या वे अपने खुद के यादृच्छिक स्ट्रिंग को जोड़ नहीं सकते हैं क्योंकि यह सर्वर द्वारा छीन लिया जाएगा?
xr280xr

9
@ macguru2000 अपने स्वयं के निर्माण को पूरी तरह से वैध और सामान्य उपयोग का मामला है। वास्तव में ब्राउज़र को डेवलपर्स के लिए स्वत: पूर्ण बंद करना आसान बनाना चाहिए, जब उन्हें हमें इस तरह से हैक्स का उपयोग करने के लिए मजबूर करने की आवश्यकता होती है
2:15

235

अधिकांश प्रमुख ब्राउज़र और पासवर्ड प्रबंधक (सही तरीके से, IMHO) अब अनदेखा करते हैं autocomplete=off

क्यों? कई बैंकों और अन्य "उच्च सुरक्षा" वेबसाइटों ने autocomplete=offअपने लॉगिन पृष्ठों में "सुरक्षा उद्देश्यों के लिए" जोड़ा, लेकिन यह वास्तव में सुरक्षा कम हो जाती है क्योंकि इससे लोगों को स्वत: पूर्ण होने के बाद से इन उच्च-सुरक्षा साइटों पर पासवर्ड बदलने में आसानी होती है (और इस प्रकार दरार) याद रखना आसान होता है टूट गया।

बहुत पहले ज्यादातर पासवर्ड मैनेजरों ने नजरअंदाज करना शुरू कर दिया था autocomplete=off, और अब ब्राउज़र केवल उपयोगकर्ता नाम / पासवर्ड इनपुट के लिए ऐसा करना शुरू कर रहे हैं।

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

वेब डेवलपर क्या करना है?

  • यदि आप किसी पृष्ठ पर सभी पासवर्ड फ़ील्ड अपने आप से रख सकते हैं, तो यह एक शानदार शुरुआत है क्योंकि ऐसा लगता है कि पासवर्ड फ़ील्ड की उपस्थिति उपयोगकर्ता के लिए मुख्य ट्रिगर है / स्वत: पूर्ण करने के लिए पास करें अन्यथा नीचे दिए गए सुझावों को पढ़ें।
  • सफारी नोटिस कि 2 पासवर्ड फ़ील्ड हैं और इस मामले में स्वत: पूर्णता अक्षम करता है, यह मानते हुए कि यह एक परिवर्तन पासवर्ड फ़ॉर्म होना चाहिए, लॉगिन फ़ॉर्म नहीं। इसलिए जहाँ भी आप अनुमति देते हैं, उनके लिए 2 पासवर्ड फ़ील्ड (नए और नए की पुष्टि करें) का उपयोग करना सुनिश्चित करें
  • Chrome 34, दुर्भाग्य से, जब भी यह पासवर्ड फ़ील्ड देखता है, तो उपयोगकर्ता / पास के साथ फ़ील्ड को ऑटोफ़िल करने का प्रयास करेगा। यह काफी बुरा बग है कि उम्मीद है, वे सफारी व्यवहार को बदल देंगे। हालाँकि, अपने फ़ॉर्म के शीर्ष पर इसे जोड़ने से लगता है कि पासवर्ड ऑटोफिल को निष्क्रिय कर सकता है:

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

मैंने अभी तक IE या फ़ायरफ़ॉक्स की पूरी तरह से जांच नहीं की है, लेकिन दूसरों को टिप्पणियों में जानकारी होने पर उत्तर को अपडेट करने में खुशी होगी।


5
आपका क्या मतलब है "इसे अपने पेज पर जोड़ने से लगता है कि पेज के लिए
ऑटोफिल

5
@wutzebaer, Chrome छिपे हुए पासवर्ड फ़ील्ड को नोटिस करता है और ऑटो-पूर्ण को रोक देता है। कथित तौर पर यह साइट को उपयोगकर्ता की सूचना के बिना पासवर्ड जानकारी चोरी करने से रोकने के लिए है।
डेविड डब्ल्यू

6
आपके कोड का स्निपेट क्रोम, फ़ायरफ़ॉक्स, IE 8 और IE 10. पर लॉगिन फ़ील्ड्स के लिए ऑटोकॉमप्लेट्स को रोकता है। IE 11 का परीक्षण नहीं किया। अच्छा सामान! केवल सरल उत्तर जो अभी भी काम करता है।
सैम वॉटकिंस

3
आपका सफारी नोट क्रोम पर भी काम करता है, कम से कम दिसंबर 2015 तक। मेरे पास एक पंजीकरण फॉर्म पर उपयोगकर्ता नाम और पासवर्ड फ़ील्ड था जो लॉगिन फ़ॉर्म से डेटा के साथ स्वत: पूर्ण था। type='password'एक पृष्ठ पर दो फ़ील्ड बनाने से ब्राउज़र के "सेव पासवर्ड" को स्वत: ही अनदेखा किया जा सकता है, जिससे पूरी तरह से समझ में आता है क्योंकि पंजीकरण फॉर्म दो बार पासवर्ड मांगते हैं, जब लॉगिन फॉर्म केवल एक बार मांगते हैं।
मैट फ्लेचर

3
Chrome 55 में अब काम नहीं करता है, जब तक कि अतिरिक्त पासवर्ड फ़ील्ड छिपाया नहीं जाता है, जो उद्देश्य को हरा देता है।
जोकेडेक

160

कभी कभी भी स्वत: पूर्ण बंद = होगा भरने के लिए नहीं रोका जा गलत क्षेत्रों में साख में नहीं, बल्कि उपयोगकर्ता या उपनाम क्षेत्र।

यह वर्कअराउंड ब्राउज़र व्यवहार के बारे में एपिंस्टीन के पोस्ट के अलावा है।

केवल पढ़ने के लिए ब्राउज़र ऑटोफ़िल को ठीक करें और फ़ोकस पर ध्यान केंद्रित करें (क्लिक करें और टैब)

 <input type="password" readonly  
     onfocus="this.removeAttribute('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/

// अपडेट

क्योंकि ब्राउज़र ऑटो गलत पाठ क्षेत्र में साख भरता है !?

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

ऊपर पढ़ा गया यह मेरे लिए काम करता है।


8
एक अगर कोई जावास्क्रिप्ट नहीं है तो पूरा फॉर्म फेल हो जाता है। -1
जिम्मी केन

8
@JimmyKane की कुंजी यह होगी कि पहली बार में जावास्क्रिप्ट का उपयोग करते हुए विशेषता को भी जोड़ा जाए (जो कि डस यहां नहीं किया गया है, लेकिन सिर्फ पूर्णता के लिए जोड़ रहा है)।
त्रैलसन

@tmelson मैं समझता हूँ, लेकिन फिर भी js का उपयोग अक्षम करने के लिए भी क्यों? आइए उन चीजों के लिए js से बचें, जिन्हें देशी रूप से बेहतर बनाया जा सकता है। फिर भी मैं आपसे सहमत हूँ।
जिमी केन

3
यह IE8 में सही काम नहीं करता है, जब आप पहली बार फोकस करते हैं और फिर से ध्यान केंद्रित करते हैं तो रीडऑनली पासवर्ड फ़ील्ड पहली बार संपादन योग्य नहीं होता है। अच्छा विचार है, लेकिन दुर्भाग्य से यह थोड़ा बहुत हैकई है और उपयोग करने के लिए सुरक्षित नहीं है।
सैम वॉटकिंस

यह सभी ब्राउज़रों (जैसे IE 11 और IE एज) पर सही ढंग से काम नहीं करता है । जैसे ही readonlyहटा दिया जाता है, बाद में फ़ील्ड का चयन स्वतः पूर्ण होने के परिणामस्वरूप होता है।
कोडिंग

106
<form name="form1" id="form1" method="post" 
      autocomplete="off" action="http://www.example.com/form.cgi">

यह Internet Explorer और Mozilla FireFox में काम करेगा, नकारात्मक पक्ष यह है कि यह XHTML मानक नहीं है।


मैंने देखा है कि इसे फॉर्म एलिमेंट में जोड़ना हमेशा फॉर्म के भीतर व्यक्तिगत इनपुट पर लागू होने से नहीं रोकता है। इसलिए इसे सीधे इनपुट तत्व पर रखना सबसे अच्छा है।
शालिंजर

15
वास्तव में @ शॉलिंगर, यह दोनों को फॉर्म में, और इनपुट तत्व पर ही डालना सबसे अच्छा है। इस तरह से आप ब्राउज़रों की सभी गैर-मानकता को कवर करते हैं।
AviD

2
अफसोस की बात है, IE 11 के रूप में, Microsoft अब इसके लिए सम्मान नहीं करता है input type="password"। उम्मीद है कि कोई अन्य ब्राउज़र इस कार्यक्षमता को हटाने का चयन नहीं करता है।
समहुबाई

स्थापना autocomplete="off"पर formकेवल बात यह है कि क्रोम के लिए काम किया है।
एंड्रयू

106

Chrome का समाधान autocomplete="new-password"इनपुट प्रकार के पासवर्ड में जोड़ना है। कृपया नीचे दिए गए उदाहरण की जाँच करें।

उदाहरण:

<form name="myForm"" method="post">
   <input name="user" type="text" />
   <input name="pass" type="password" autocomplete="new-password" />
   <input type="submit">
</form>

Chrome हमेशा डेटा को स्वत: पूर्ण करता है यदि उसे एक प्रकार का पासवर्ड मिल जाता है , तो बस उस बॉक्स को इंगित करने के लिए पर्याप्त है autocomplete = "new-password"

यह मेरे लिए अच्छा काम करता है।

नोट: यह सुनिश्चित करें F12कि आपके परिवर्तन प्रभावी हों, कई बार ब्राउज़र कैश में पेज को सहेजते हैं, इससे मुझे एक बुरा आभास हुआ कि यह काम नहीं किया, लेकिन ब्राउज़र वास्तव में बदलाव नहीं लाया।


2
यह क्रोम में अन्य प्रकार के क्षेत्रों के लिए भी काम करता है, न कि केवल प्रकार = "पासवर्ड"।
जेक

मैंने इसका उपयोग पासवर्ड, ईमेल और पाठ प्रकारों के साथ किया और यह काम किया। मैंने इसे बस इस तरह इस्तेमाल किया: स्वत: पूर्ण = "नया"
क्रैक_मबूटिन

स्वत: पूर्ण = "nope" नाम = "pswd" और प्रयुक्त <इनपुट नाम = "dummyPassword" प्रकार = "पासवर्ड" शैली = "प्रदर्शन: कोई नहीं?"> वास्तविक पासवर्ड इनपुट फ़ील्ड से पहले। इसने मेरे लिए काम किया।
डेनुका


यह अब क्रोम ही नहीं, लगभग सभी ब्राउज़र में काम करता है: स्वतः पूर्ण # Browser_compatibility
एंड्रयू मॉर्टन

60

जैसा कि दूसरों ने कहा है, इसका उत्तर है autocomplete="off"

हालाँकि, मुझे लगता है कि यह बताने के लायक है कि कुछ मामलों में इसका उपयोग करना एक अच्छा विचार है क्योंकि कुछ उत्तरों और डुप्लिकेट प्रश्नों ने सुझाव दिया है कि इसे बंद न करना बेहतर है।

क्रेडिट कार्ड नंबर संग्रहीत करने वाले ब्राउज़र को रोकना उपयोगकर्ताओं को नहीं छोड़ा जाना चाहिए। बहुत से उपयोगकर्ताओं को यह भी एहसास नहीं होगा कि यह एक समस्या है।

क्रेडिट कार्ड सुरक्षा कोड के लिए इसे खेतों में बंद करना विशेष रूप से महत्वपूर्ण है। जैसा कि यह पृष्ठ बताता है:

"सुरक्षा कोड को कभी संग्रहीत न करें ... इसका मूल्य अनुमान पर निर्भर करता है कि इसे आपूर्ति करने का एकमात्र तरीका भौतिक क्रेडिट कार्ड से इसे पढ़ना है, यह साबित करता है कि आपूर्ति करने वाला व्यक्ति वास्तव में कार्ड रखता है।"

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


7
अगर मैं किसी साइट पर गया था और उसे ड्रॉपडाउन में मेरे कार्ड की याद आई तो मैं बहुत दुखी हो गया। आईडी को आश्चर्य है कि वे इतने लापरवाह कैसे हो सकते हैं।
साइमन_वेवर

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

34

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

<input name="name" type="text" autocomplete="rutjfkde">

आशा है कि यह अन्य लोगों को मदद करेगा।


2
यह और भी बेहतर काम करता है। आप एक छोटा जेएस जोड़ सकते हैं जो हर पेज लोड के लिए एक यादृच्छिक कोड उत्पन्न करता है, और उस कोड को इनपुट फ़ील्ड में जोड़ देता है: <code> function autoId () {var autoId = ""; var तानाशाह = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789"; के लिए (var i = 0; i <12; i ++) {autoId + = dict.charAt (Math.floor (Math.random () * dict.length)); } ऑटोआईडी; } $ ('। स्वतः पूर्ण')। Attr ('स्वतः पूर्ण', स्वतः पूर्ण) (); </ code> आप autocompleteoffअपने इच्छित इनपुट क्षेत्र में वर्ग जोड़ सकते हैं ।
रघुराम कश्यप

मेरे क्रोम संस्करण में काम नहीं कर रहा है संस्करण 68.0.3440.106 (आधिकारिक बिल्ड) (64-बिट)
सुकन्या पुरुषोत्तम

क्रोम को अब मानकीकृत "बंद" का उपयोग करने के लिए तय किया गया है
मैक

1
अफसोस की बात है कि क्रोम पर मानक कहा जाता है की तुलना में यह बेहतर काम करता है
नूर लाबाबिडी

1
आज मैंने पाया कि क्रोम "ऑफ" के साथ यादृच्छिक स्ट्रिंग को अधिलेखित कर देगा। मुझे विश्वास नहीं हो रहा है कि क्रोम डेवलपर्स इस विशेषता को खराब और नॉनकंट्रोल कर रहे हैं। क्यों ओह मेरे पास
चरण

33

मुझे उन उत्तरों के साथ अलग-अलग भीख माँगनी होगी जो ऑटो-पूर्ण को अक्षम करने से बचने के लिए कहते हैं।

पहली बात यह है कि लॉगिन फॉर्म फ़ील्ड पर स्पष्ट रूप से अक्षम नहीं किया जा रहा ऑटो-पीएसआई विफल है। इसके अलावा, यदि उपयोगकर्ताओं की स्थानीय मशीन से छेड़छाड़ की जाती है, तो किसी भी स्वत: पूर्ण डेटा को स्पष्ट रूप से संग्रहीत होने के कारण किसी हमलावर द्वारा प्राप्त किया जा सकता है।

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


यह मेरे ध्यान में आया है कि जब आप AutoComplete का उपयोग करके एक टेक्स्ट इनपुट भरते हैं तो IE ऑनकॉन्ग इवेंट्स को ट्रिगर नहीं करता है। हमें दर्जनों फॉर्म मिल गए हैं और एक हजार से अधिक घटनाओं (इनपुट वैलिडेशन, बिजनेस लॉजिक) ने उन्हें बिखेर दिया है। हाल ही में हमने IE को एक नए संस्करण में अपग्रेड किया और अचानक अजीब चीजें होने लगीं। सौभाग्य से हम एक इंट्रानेट ऐप चला रहे हैं और स्वतः पूर्ण हमारे लिए UX मुद्दा नहीं है, बस इसे बंद करना आसान है।
रोबॉट्रॉन

3
यदि एक उपयोगकर्ता स्थानीय मशीन से छेड़छाड़ की जाती है, तो वे खराब हो जाते हैं। इसमें एक कीगलर स्थापित हो सकता है, इसमें एक नकली एसएसएल रूट प्रमाणपत्र जोड़ा जा सकता है और एक झूठी प्रॉक्सी आदि के माध्यम से सब कुछ भेजा जा सकता है। मेरे पास स्वतः पूर्ण को अक्षम करने का एक वास्तविक कारण है - जब मैं एक व्यवस्थापक के रूप में लॉग इन करता हूं और संपादित उपयोगकर्ता पृष्ठ पर जाता हूं, तो यह असाइन होता है वह उपयोगकर्ता मेरा व्यवस्थापक उपयोगकर्ता नाम और पासवर्ड। मुझे इस व्यवहार को रोकने की जरूरत है।
rjmunro

1
ब्राउज़र विक्रेताओं को अपने स्वयं के हितों की तलाश है। सहेजे गए पासवर्ड = उपयोगकर्ता लॉक-इन। और स्वतः पूर्ण / बंद बहुत सरल था - शब्दार्थ संकेत का एक जटिल मानक क्यों नहीं ( html.spec.whatwg.org/multipage/… ), जो, बाय-बाय-तरीका, ब्राउज़र को प्रत्येक साइट से मूल्यवान अर्ध -डेटा एकत्र करने की अनुमति देता है उपयोगकर्ता का दौरा?
अरु_टेक

मैं जिस विशेष उपयोग के मामले को हल करने का प्रयास कर रहा हूं वह यह है: वे पहले से ही लॉग इन हैं। लेकिन अब वे कुछ और भी अधिक संवेदनशील उपयोग करने वाले हैं। मैं एक संवाद दिखाना चाहता हूं जो उन्हें फिर से प्रामाणिक बनाता है, इस संभावना के खिलाफ कि वे धूम्रपान करने के लिए चले गए और एक बुरा व्यक्ति उनकी कुर्सी पर बैठ गया। स्वतः पूर्णता को पराजित करने के लिए कई तकनीकों की कोशिश की है, और कुछ भी काम नहीं करता है। अब मैं सोच रहा हूं, हो सकता है, कम से कम, अच्छे पुराने 'पासवर्ड = window.prompt ("कृपया अपना पासवर्ड फिर से दर्ज करें") का उपयोग करें और साथ ही सत्र में उपयोगकर्ता नाम लिखें, और इसे प्रमाणित करने का प्रयास करें।
डेविड

31

तीन विकल्प: पहला:

<input type='text' autocomplete='off' />

दूसरा:

<form action='' autocomplete='off'>

तीसरा (जावास्क्रिप्ट कोड):

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

2
पहला और दूसरा विकल्प एक विकल्प होना चाहिए, क्योंकि यह इस बात पर निर्भर करता है कि ब्राउज़र इसे कैसे संभालते हैं।
rybo111

$ FormElement.attr ('स्वतः पूर्ण', 'बंद') की कोशिश की; और यह काम नहीं करता है।
बेन सिनक्लेयर

22

संबंधित या वास्तव में, पूरी तरह से विपरीत नोट पर -

"यदि आप उपर्युक्त फ़ॉर्म के उपयोगकर्ता हैं और स्वत: पूर्ण कार्यक्षमता को फिर से सक्षम करना चाहते हैं, तो इस बुकमार्कलेट पृष्ठ से 'याद रखें पासवर्ड' बुकमार्कलेट का उपयोग करें । यह autocomplete="off"पृष्ठ पर सभी रूपों से सभी विशेषताओं को हटा देता है । अच्छी लड़ाई लड़ते रहें! "


20

हम वास्तव में एक साइट के लिए sasb के विचार का उपयोग करते हैं । यह एक डॉक्टर के कार्यालय को चलाने के लिए एक मेडिकल सॉफ्टवेयर वेब ऐप था। हालांकि, हमारे कई ग्राहक सर्जन थे जिन्होंने अर्ध-सार्वजनिक टर्मिनलों सहित विभिन्न कार्यस्थलों का बहुत उपयोग किया था। इसलिए, वे यह सुनिश्चित करना चाहते थे कि एक डॉक्टर जो ऑटो-सहेजे गए पासवर्ड के निहितार्थ को नहीं समझता है या ध्यान नहीं दे रहा है, गलती से अपनी लॉगिन जानकारी को आसानी से सुलभ नहीं छोड़ सकता है। बेशक, यह निजी ब्राउज़िंग के विचार से पहले था जो IE8, FF3.1 आदि में प्रदर्शित होना शुरू हो रहा है। यहां तक ​​कि कई चिकित्सकों को आईटी के साथ अस्पतालों में पुराने स्कूल ब्राउज़रों का उपयोग करने के लिए मजबूर किया जाता है जो बदले नहीं जाएंगे।

इसलिए, हमारे पास लॉगिन पृष्ठ यादृच्छिक क्षेत्र नाम उत्पन्न करता है जो केवल उस पोस्ट के लिए काम करेगा। हां, यह कम सुविधाजनक है, लेकिन यह केवल सार्वजनिक टर्मिनलों पर लॉगिन जानकारी संग्रहीत नहीं करने के बारे में उपयोगकर्ता को सिर पर मार रहा है।


20

इस बातचीत में मेरे लिए कोई भी समाधान काम नहीं आया।

मैंने आखिर में एक शुद्ध HTML समाधान निकाला, जिसमें कोई जावास्क्रिप्ट की आवश्यकता नहीं है , आधुनिक ब्राउज़रों में काम करता है (IE को छोड़कर; कम से कम 1 कैच, राइट?) करना था, और आपको पूरे फॉर्म के लिए स्वत: पूर्ण अक्षम करने की आवश्यकता नहीं है।

बस स्वत: पूर्ण को बंद करें formऔर फिर इसे चालू करें जो inputआप चाहते हैं कि यह फ़ॉर्म के भीतर काम करे। उदाहरण के लिए:

<form autocomplete="off">
    <!-- these inputs will not allow autocomplete and chrome 
         won't highlight them yellow! -->
    <input name="username"  />
    <input name="password" type="password" />
    <!-- this field will allow autocomplete to work even 
         though we've disabled it on the form -->
    <input name="another_field" autocomplete="on" />
</form>

यह पूरी तरह से था कि मैं क्या देख रहा था!
मार्को

20

बस सेट autocomplete="off"। ऐसा करने का एक बहुत अच्छा कारण है: आप अपनी स्वयं की कार्यक्षमता प्रदान करना चाहते हैं!


20

मैं अंतहीन समाधान की कोशिश कर रहा हूं, और फिर मुझे यह मिला:

इसके बजाय autocomplete="off"बस का उपयोग करेंautocomplete="false"

जैसा कि सरल है, और यह Google Chrome में भी एक आकर्षण की तरह काम करता है!


जैसा कि आपने क्रोम में कहा था, ऑफ वैल्यू काम नहीं करता है। इसे "झूठे" होने की आवश्यकता है
अज़ुक्स

मेरे लिए Chrome 44.0.2403.130 पर काम करता है।
GuiGS

1
इसे आज़माया: $ formElement.attr ('स्वतः पूर्ण', 'गलत'); सॉरी काम नहीं करता।
बेन सिनक्लेयर

20

यह मेरे लिए काम करता है।

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

हम इस रणनीति का उपयोग अन्य नियंत्रणों जैसे पाठ, चयन आदि में भी कर सकते हैं


यह नवीनतम उत्तर होना चाहिए। एकमात्र जवाब जो मेरे लिए नवीनतम क्रोम में काम करता है
निक चान अब्दुल्ला

19

मुझे लगता autocomplete=offहै कि HTML 5 में समर्थित है।

अपने आप से पूछें कि आप ऐसा क्यों करना चाहते हैं - यह कुछ स्थितियों में समझ में आ सकता है लेकिन इसे करने के लिए बस ऐसा न करें।

यह उपयोगकर्ताओं के लिए कम सुविधाजनक है और OS X में सिक्योरिटी इश्यू (नीचे सोरेन द्वारा उल्लिखित) भी नहीं है। यदि आप उन लोगों के बारे में चिंतित हैं जो अपने पासवर्ड को दूरस्थ रूप से चुराते हैं - एक कीस्ट्रोक लकड़हारा तब भी ऐसा कर सकता है, भले ही आपका ऐप उपयोग करता होautcomplete=off

एक उपयोगकर्ता के रूप में जो मेरी जानकारी को एक ब्राउज़र याद रखना चाहता है (अधिकांश), मुझे लगता है कि अगर आपकी साइट मुझे याद नहीं है तो मुझे यह कष्टप्रद लगेगा।


17

के अतिरिक्त

autocomplete="off"

उपयोग

readonly onfocus="this.removeAttribute('readonly');"

इनपुट के लिए आप उन्हें प्रपत्र डेटा (याद नहीं करना चाहती है कि username, passwordजैसा कि नीचे दिखाया, आदि):

<input type="text" name="UserName" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

<input type="password" name="Password" autocomplete="off" readonly 
    onfocus="this.removeAttribute('readonly');" >

उम्मीद है की यह मदद करेगा।


1
आईई 11 में मेरे लिए मैं टेक्स्ट बॉक्स में टाइप नहीं कर सकता, भले ही ऑनफोकस आसानी से विशेषता को हटा दे। हालांकि, अगर मैं टेक्स्ट बॉक्स पर दूसरी बार क्लिक करता हूं तो टाइप कर सकता हूं।
mcallahan

मैं IE11 के साथ एक ही मुद्दे में भाग गया (दूसरे फ़ोकस तक टाइप नहीं कर सकता)। एक धब्बा जोड़ना और फिर ध्यान केंद्रित करना फिर से काम करता है। $(document).on('focus', 'input:password[readonly="readonly"]', function () { $(this).prop('readonly', false).blur().focus(); });
ताड़

@ और यकीन है, आप कर सकते हैं। यह इस मुद्दे को अभिभूत करने के लिए मुख्य सिद्धांत है और मैंने एक अद्यतन भी जोड़ा है जिसमें पूर्ण कोड उदाहरण है;)
मूरत येल्ड्ज़

मैंने भी जोड़ा हैonfocusout="this.setAttribute('readonly', 'readonly');"
rinatdobr

16

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

स्वत: पूर्ण उपयोगकर्ता नाम (या ईमेल) और पासवर्ड रोकें:

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

स्वत: पूर्ण फ़ील्ड को रोकें:

<input type="text" name="field" autocomplete="nope">

स्पष्टीकरण: autocompleteकाम जारी रखता है <input>, autocomplete="off"काम नहीं करता है, लेकिन आप offएक यादृच्छिक स्ट्रिंग में बदल सकते हैं , जैसे nope

काम में:

  • क्रोम: 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63 और 64

  • फ़ायरफ़ॉक्स: 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57 और 58


2
मुझे यह अपने प्रारंभिक परीक्षण में काम करने के लिए मिला। इतना अजीब कि "बंद" काम नहीं करता है।
क्रेग जैकब्स

यह Android पर Chrome के लिए काम नहीं करता है। मैंने autocompleteविशेषता के लिए स्ट्रिंग मान सेट करने की कोशिश की है और यह अभी भी इनपुट के तहत स्वत: पूर्ण सुझावों के रूप में पिछली प्रविष्टियाँ प्रदर्शित करता है।
tebs1200

@ tebs1200 कौन सा? पासवर्ड फ़ील्ड या टेक्स्ट फ़ील्ड?
कावा

@ कावा देरी की प्रतिक्रिया के लिए खेद है। पाठ क्षेत्र। इससे कोई फर्क नहीं पड़ता कि मैं किस मूल्य पर सेट हूं autocomplete, मुझे अभी भी पहले से दर्ज मानों के आधार पर एक सुझाव ड्रॉपडाउन मिलता है। यह डेस्कटॉप पर ठीक है, लेकिन एंड्रॉइड क्रोम पर नहीं।
tebs1200

14

खेल में थोड़ी देर ... लेकिन मैं अभी इस समस्या में भाग गया और कई विफलताओं की कोशिश की, लेकिन मेरे लिए यह एक काम एमडीएन पर मिला

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

autocomplete="nope"

13

जोड़ रहा है

autocomplete="off"

फॉर्म टैग सभी से ब्राउज़र को स्वत: पूर्ण (जो पहले उस फ़ील्ड में टाइप किया गया था) को अक्षम कर देगा input उस विशेष रूप में फ़ील्ड ।

पर परीक्षण किया गया:

  • फ़ायरफ़ॉक्स 3.5, 4 बीटा
  • इंटरनेट एक्सप्लोरर 8
  • क्रोम

13

जोड़ने autocomplete="off"वाला इसे काटने वाला नहीं है।

करने के लिए इनपुट प्रकार विशेषता बदलें type="search"
Google एक प्रकार की खोज के साथ इनपुट के लिए ऑटो-फिल लागू नहीं करता है।


4
यह एक हैक है। फ़ील्ड खोज फ़ील्ड नहीं है। भविष्य में यह परेशानी का कारण बन सकता है।
Roel

12

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


इसके साथ समस्या यह है कि यदि कोई अन्य साइट उसी उद्देश्य को प्राप्त करने के लिए "name_" का उपयोग करती है तो आप एक वर्ग में वापस आ जाएंगे।
कॉनरॉयपी

3
इसलिए इसे "mysite_name" बनाएं। अगर किसी और का उपयोग कर रहा है, तो मैं उनसे सवाल पूछूंगा ...
स्टीव पर्क्स

यह उन स्वचालित आबादी उपयोगिताओं में से कुछ को गड़बड़ करता है
शमौन_विवर

12

अमान्य XHTML से बचने के लिए आप जावास्क्रिप्ट का उपयोग करके इस विशेषता को सेट कर सकते हैं। JQuery का उपयोग करके उदाहरण:

<input type="text" class="noAutoComplete" ... />

$(function() {
    $('.noAutoComplete').attr('autocomplete', 'off');
});

समस्या यह है कि जावास्क्रिप्ट के बिना उपयोगकर्ता स्वत: पूर्ण कार्यक्षमता प्राप्त करेंगे।


38
यह अमान्य एक्सएचटीएमएल से नहीं बचता है, यह अवैध बिट को गतिशील रूप से जोड़ता है जब आपने इसे जाँच लिया है तो इसे वैध घोषित किया है!
एंडीह

@Andiih: तो क्या एक्सएचटीएमएल में स्वतः पूर्ण कार्य करने का कोई तरीका है?
चेरोविम

1
कार्य करें (या इसे काम करना बंद करें जो लक्ष्य है): हाँ जैसा कि ऊपर। लेकिन मान्य - नहीं।
औरिह

11

अगर autocomplete="off"काम नहीं करता है तो भी इन्हें आज़माएं :

autocorrect="off" autocapitalize="off" autocomplete="off"

11

मुझे विश्वास नहीं हो रहा है कि यह रिपोर्ट किए जाने के बाद भी यह एक मुद्दा है। उपरोक्त समाधान मेरे लिए कारगर नहीं थे, क्योंकि सफारी को पता था कि तत्व प्रदर्शित नहीं किया गया था या ऑफ-स्क्रीन, हालांकि निम्नलिखित ने इसके लिए कोई काम नहीं किया:

<div style="height:0px; overflow:hidden; ">
  Username <input type="text" name="fake_safari_username" >
  Password <input type="password" name="fake_safari_password">
</div>

आशा है कि किसी के लिए उपयोगी है!


1
इसलिए, इसे वास्तविक उपयोगकर्ता नाम और पासवर्ड फ़ील्ड में डालने से पहले काम किया? ब्राउज़र उन भरा है और असली नहीं
एंड्रयू

11

तो यहाँ है:

function turnOnPasswordStyle() {
  $('#inputpassword').attr('type', "password");
}
<input oninput="turnOnPasswordStyle()" id="inputpassword" type="text">


1
यदि दृश्य टेक्स्ट के फ़्लैश को रोकने के लिए शैली टेक्स्ट बॉक्स में अच्छा विचार दिखता है।
एंड्रयू

1
बहुत बहुत धन्यवाद, यह काम किया +1, आपके समाधान के लिए मेरी भिन्नता इसे एक पंक्ति से बनाना था: <इनपुट oninput = "this.type = 'password'" id = "inputpassword" type = "text">
हस्ना इब्राहीम

@HasnaaIbraheem धन्यवाद (: कभी-कभी अधिक पठनीय बेहतर है।
Stav Bodik

11

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

यहाँ मेरा फिक्स है। एक दृष्टिकोण जो मैंने अपने ढांचे में लागू किया है। सभी स्वत: पूर्ण तत्व इस तरह एक छिपे हुए इनपुट के साथ उत्पन्न होते हैं:

<? $r = rmd5(rand().mocrotime(TRUE)); ?>
<form method="POST" action="./">
    <input type="text" name="<? echo $r; ?>" />
    <input type="hidden" name="__autocomplete_fix_<? echo $r; ?>" value="username" />
    <input type="submit" name="submit" value="submit" />
</form>

सर्वर तो इस तरह पोस्ट चर की प्रक्रिया:

foreach ($_POST as $key => $val)
{
    if(preg_match('#^__autocomplete_fix_#', $key) === 1){
        $n = substr($key, 19);
        if(isset($_POST[$n]))$_POST[$val] = $_POST[$n];
    }
}

मान को हमेशा की तरह एक्सेस किया जा सकता है

var_dump($_POST['username']);

और ब्राउज़र पिछले अनुरोध या पिछले उपयोगकर्ताओं से जानकारी का सुझाव देने में सक्षम नहीं होगा।

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


10

यहां बताई गई किसी भी हैक ने मेरे लिए क्रोम में काम नहीं किया। यहाँ इस मुद्दे की चर्चा है: https://code.google.com/p/chromium/issues/detail?id=46815##c41

इसे किसी <form>कार्य के अंदर जोड़ना (कम से कम अभी के लिए):

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

1
ध्यान दें कि इस तकनीक का उपयोग करते हुए, फायरफॉक्स अभी भी वास्तव में उस छिपे हुए क्षेत्र को ऑटोफिल करेगा, जिसे फॉर्म जमा करते समय शामिल किया जाएगा। यह संभवतः बुरा होगा, क्योंकि तब पासवर्ड एक संभावित असुरक्षित कनेक्शन पर स्थानांतरित किया जाएगा। सौभाग्य से जोड़ने maxlength="0"से फ़ायरफ़ॉक्स को क्षेत्र को स्वतःभरण से रोका जा सकता है।
मिकाल स्कैच जेन्सेन

9

आप इनपुट में उपयोग कर सकते हैं।

उदाहरण के लिए;

<input type=text name="test" autocomplete="off" />
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.