2010-05-29 10 views
5

तो फ़ायरफ़ॉक्स में निफ्टी तंत्र है जो किसी पृष्ठ को फिर से लोड किए जाने पर या बैक बटन का उपयोग होने पर फ़ील्ड में मानों को स्वत: पूर्ण करने का प्रयास करेगा। जो महान है और सब कुछ छोड़कर जब आपके पास ड्रॉप-डाउन की तरह कुछ होता है जो किसी मान पर सेट होता है तो AJAX का उपयोग करके पृष्ठ को संशोधित करता है।परिवर्तन घटनाओं के बिना फ़ायरफ़ॉक्स के फॉर्म ऑटो पूर्णता को अक्षम कैसे करें?

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

वहाँ एक अच्छा तरीका करने की उम्मीद के रूप में इतना है कि यह उपयोगकर्ता के लिए काम करता है इस व्यवहार "ठीक" है:

एक) हम स्वत: पूर्ण करने के लिए ब्राउज़र चाहते हैं क्योंकि वह एक अच्छा उपयोगकर्ता अनुभव है।

बी) फिर भी उस अस्थायी घटना फायरिंग चाहते हैं।

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

किसी के पास कोई बेहतर समाधान है? क्या कोई lib है जो पहले से ही करता है?

(का उपयोग करते हुए रेल 2.3.5 + jQuery)

उत्तर

1

दुर्भाग्य से पृष्ठ को फिर से लोड करने या बैक-फॉरवर्ड बटन का उपयोग करते समय ऑटो-भरने वाले फ़ील्ड से फ़ायरफ़ॉक्स को वास्तव में अक्षम करने का कोई तरीका नहीं प्रतीत होता है। सौभाग्य से $(document).ready() घटना के दौरान मूल्य पहले से ही मौजूद हैं, जब तक कि उन इनपुट में सब कुछ हो सकता है। प्रारंभ में उन्हें भी शुरू किया जा सकता है, इससे कोई फ़र्क नहीं पड़ता कि मूल्य कहां से आए थे और यह बस काम करता है।

0

मैं आप उन क्षेत्रों prefilling से ब्राउज़र को रोकने के लिए autocomplete="off" जोड़ सकते हैं लगता है।

आपके पास एक ऐसा फ़ंक्शन भी हो सकता है जो onload चलाता है और मूल रूप से यह देखने के लिए जांच करता है कि फ़ील्ड का मान value="" पैरामीटर में निर्दिष्ट किया गया था या नहीं।

+0

क्षमा करें कि सिर्फ मेरे प्रश्न में मैंने जो लिखा है उसकी प्रतिलिपि बना रहा है। ईमानदार होने के लिए मैं स्वत: पूर्ण अक्षम नहीं करना चाहता ... मुझे लगता है कि मैंने जो समाधान दिया है, वह है जो मैं उपयोग करता हूं। –

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