2015-10-06 3 views
5

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

<form autocomplete="off"> 
<input type="text" autocomplete="off" name="login" /> 
<input type="password" autocomplete="off" name="pswd" /> 
... 
</form> 

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

संपादित

और जिस तरह से, सरकारी W3C documentation के विपरीत द्वारा, एचटीएमएल 5 autocomplete="off" का सम्मान नहीं कर रहा है (कम से कम एफएफ में)।

+0

यहां तक ​​कि 'value =" "' मदद नहीं करता है। – Jacobian

+2

इसका डुप्लिकेट नहीं है? http://stackoverflow.com/questions/2530/how-do-you-disable-browser-autocomplete-on-web-form-field-input-tag –

+0

आप किस ब्राउज़र संस्करण का उपयोग कर रहे हैं? – deepakb

उत्तर

0

मुझे लगता है कि आप autocomplete पर "" और name पर हटाने के किया जाना चाहिए, क्योंकि वे गुण मान नहीं कर रहे हैं।

<form autocomplete="off"> 
<input type="text" name="login" /> 
<input type="password" name="pswd" /> 
</form> 
+0

जोड़ा है, वास्तविक मामले में, कोई उद्धरण नहीं है और फिर भी यह काम नहीं कर रहा है। ब्राउज़र इसे याद रखता है। – Jacobian

+0

यह आपके ब्राउज़र पर निर्भर करता है ... कुछ ब्राउज़र उस संपत्ति का समर्थन नहीं करते हैं। –

+0

फिर इस कार्यक्षमता की नकल कैसे करें? ब्राउज़र मूल्यों को इनपुट करने और दिखाने से रोकने के लिए कैसे करें (ड्रॉप-डाउन सूची में)? – Jacobian

1

क्या आप क्रोम का उपयोग कर रहे हैं? शायद यह bug प्रासंगिक है, खासकर यह comment

टिप्पणी राज्यों

स्वत: पूर्ण = "बंद", स्वतः भरण डेटा के लिए सम्मान नहीं है या भरने की बचत या नहीं। आप क्रोम: // सेटिंग्स/ऑटोफिल में अपना ऑटोफिल डेटा देख सकते हैं। इसमें पते और क्रेडिट कार्ड शामिल हैं।

स्वत: पूर्ण = "बंद" अभी भी स्वत: पूर्ण डेटा के लिए सम्मानित है, दोनों बचत और भरना। मुझे पता है कि शब्दावली उलझन में है। स्वत: पूर्ण डेटा केवल नाम विशेषताओं से मेल खाने का प्रयास करता है। इसलिए यदि आपने अतीत में नाम = "ईमेल" के साथ इनपुट में "[email protected]" दर्ज किया है, और क्रोम एक और नाम = "ईमेल" इनपुट देखता है, तो क्रोम डेटा को पूरा करने की पेशकश करेगा। हालांकि, स्वत: पूर्ण = "बंद" इसे होने से रोक देगा।

caniuse.com एक अच्छा संसाधन है, यह जांचने के लिए कि कौन से ब्राउज़र किसी दिए गए सुविधा का समर्थन करते हैं।

+0

प्रश्नकर्ता ने बताया कि वह एफएफ – Burgi

+0

@ बुर्गी का उपयोग कर रहा है - मेरी रक्षा में, उन्होंने जब मैंने अपना जवाब टाइप करना शुरू किया। – user5325596

+0

मुझे टाइमस्टैम्प की जांच करनी चाहिए, क्षमा करें – Burgi

6

https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#The_autocomplete_attribute_and_login_fields से:

[...] कई आधुनिक ब्राउज़र स्वत: पूर्ण = लॉगिन फ़ील्ड के लिए "बंद" का समर्थन नहीं करते।

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

हालांकि इस के पीछे तर्क यह बहस का मुद्दा है, यह व्यवहार का इरादा है।

+0

यह सबसे प्रासंगिक उत्तर की तरह लगता है। लेकिन क्या अब काम करने के लिए कोई विकल्प नहीं है स्वत: पूर्ण = "बंद"? – Jacobian

+0

मैंने व्यक्तिगत रूप से उस व्यवहार को रोकने की कोशिश नहीं की है, इसलिए मैं केवल अनुमान लगा सकता हूं। क्या काम हो सकता है _not_ उपयोगकर्ता नाम और पासवर्ड को एक फॉर्म के अंदर सबमिट करना और (बटन क्लिक/एंटर पर) जावास्क्रिप्ट का उपयोग करके उपयोगकर्ता नाम और पासवर्ड को एक छिपे हुए फॉर्म में कॉपी करने के लिए, फिर प्रोग्रामेटिक रूप से सबमिट करना। Altough मैं आम तौर पर सोचता हूं कि इच्छित व्यवहार को रोकने का एक बुरा विचार है और लाइन को समस्याएं पैदा कर देगा, जैसे उपयोगकर्ता शिकायत करते हैं कि उनका रूप किसी भी तरह से जिस तरह से उपयोग किया जाता है उससे व्यवहार नहीं करता है। – Goujon

3

बिल्टिन पासवर्ड मैनेजर वाले आधुनिक ब्राउज़र लॉगिन फॉर्म में autocomplete="off" को अनदेखा करते हैं (आमतौर पर विशेष रूप से <input type="password"> के साथ फ़ॉर्म)। जब एंडुसर इस तरह के फॉर्म के माध्यम से पहली बार लॉग इन करता है, तो ब्राउज़र एंडुसर से पूछेगा कि इस साइट के लिए लॉगिन याद रखना है या नहीं। यदि एंडुसर नहीं चुनता है, तो डिफ़ॉल्ट व्यवहार जारी रहेगा (इसलिए autocomplete विशेषता का सम्मान किया जाएगा, इसके मूल्य के बावजूद)। हालांकि, अगर एंडुसर हाँ चुनता है, तो डिफ़ॉल्ट व्यवहार ओवरराइड हो जाएगा और यह व्यवहार करेगा जैसे autocompleteहमेशा चालू है। यह एक ब्राउज़र कॉन्फ़िगरेशन सेटिंग है जो डिफ़ॉल्ट रूप से है। इसका उल्लेख MDN में भी किया गया है।

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

यदि आपका वेब ढांचा निर्मित अजाक्स सुविधाओं की पेशकश नहीं करता है, तो jQuery में फेंकने पर विचार करें। यह तब मौजूदा रूपों को अविभाज्य रूप से बढ़ाने के लिए नीचे की रेखाओं का मामला है। नीचे दिया गया मूल किकऑफ उदाहरण मानता है कि लॉग इन सफल था या नहीं, इस पर निर्भर करता है कि आपने सादा पाठ true या false प्रतिक्रिया के रूप में सर्वर पक्ष को फिर से काम किया है। आप आवश्यक सशर्त प्रतिक्रिया X-Requested-With हैडर के मूल्य के आधार यदि सकता है: पासवर्ड को भरने के लिए ब्राउज़रों लेकिन "password" प्रकार का उपयोग रोकने के लिए

$(document).on("submit", "#loginFormId", function() { 
    var $form = $(this); 

    $.post($form.attr("action"), $form.serialize(), function(response) { 
     if (response) { 
      window.location = "home.html"; // Redirect to homepage. 
     } else { 
      $("#errorMessageId").text("Unknown login, please retry"); 
      $form[0].reset(); 
     } 
    }); 
}); 
0

वर्कअराउंड ...

साथ प्रयास करें: <input type='text' ... onfocus=' this.type="password" ' autocomplete='off'/>

संबंधित मुद्दे