2011-11-02 19 views
5

फ़ायरफ़ॉक्स 7.0.1 में, मेरे पास दो चेकबॉक्स और कई अन्य इनपुट हैं।फ़ायरफ़ॉक्स को गलत तरीके से रेडियो बटन याद रखना

जब मैं jQuery फ़ायरफ़ॉक्स के माध्यम से एक और इनपुट जोड़ता हूं तो सही ढंग से याद नहीं होता कि रेडियो इनपुट का चयन किया जाता है।

उदाहरण के लिए, यदि मैं पहला रेडियो बटन चुनता हूं और फिर पृष्ठ को रीफ्रेश करता हूं तो दूसरा रेडियो बटन पहले के बजाए चुना जाता है और यदि मैं फिर से ताज़ा करता हूं तो कोई रेडियो बटन नहीं चुना जाता है।

आप एक नई फ़ाइल में कॉपी करने के लिए और पेस्ट नीचे कोड अपने आप के लिए परीक्षण करने के लिए सक्षम होना चाहिए:

<!DOCTYPE html> 
<html lang="en"> 
<head> 
    <meta content="text/html; charset=utf-8" http-equiv="Content-Type"/> 
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.4/jquery.min.js"></script> 
    <script> 
    $(document).ready(function(){ 
    $('select').after('<input class="select" type="text" name="new_text_input" />'); 
}); 
    </script> 
    <title>Pretty jQuery Form</title> 
</head> 
<body> 
<form> 
    <fieldset> 
     <label>Select Box</label> 
     <select name="my_select"> 
      <option>Option 1</option> 
      <option>Option 2</option> 
      <option>Option 3</option> 
      <option>Option 4</option> 
     </select> 
    </fieldset> 
    <fieldset> 
     <label>Text Input</label> 
     <input class="text" id="text_input" name="input" type="text" /> 
    </fieldset> 
    <fieldset> 
     <label>Text Area</label> 
     <textarea></textarea> 
    </fieldset> 
    <fieldset> 
     <label>Radio</label> 
     <input value="1" name="radio" id="radio1" type="radio" /> <label for="radio1">Radio 1</label> 
     <input value="2" name="radio" id="radio2" type="radio" /> <label for="radio2">Radio 2</label> 
    </fieldset> 
</form> 
</body> 
</html> 

मैं नोट करना चाहिए कि मैं वास्तव में क्या करने के लिए कोशिश कर रहा हूँ क्या अधिक जटिल है लेकिन उसके बाद कई घंटे डिबगिंग के कारण मैंने इसे कम करने में कामयाब रहा है।

+0

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

+0

मुझे एहसास है कि फ़ायरफ़ॉक्स करता है, या कम से कम उपयोग किया जाता है। फिर भी प्रत्येक रीफ्रेश पर विभिन्न रेडियो बटनों की जांच के तरीके के साथ अभी भी एक समस्या है। – robjbrain

+0

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

उत्तर

14

बिना छोड़ दिया हूँ इस मुद्दे के बारे में एक लेख है: http://www.ryancramer.com/journal/entries/radio_buttons_firefox/

बग पहले पांच साल पहले सूचना मिली थी: https://bugzilla.mozilla.org/show_bug.cgi?id=394782

समाधान:

<form autocomplete="off"> 

या jQuery का उपयोग कर:

$(document).ready(function() { 
    if ($.browser.mozilla) $("form").attr("autocomplete", "off"); 
}); 

यह भी सिर्फ रेडियो बटन पर स्वत: पूर्ण = "बंद" डाल खुद को (इस तरह से आप अभी भी अन्य प्रपत्र फ़ील्ड्स के लिए स्वत: पूर्ण प्राप्त कर सकते हैं) द्वारा समस्या को रोकने के लिए संभव है।

+2

मैंने रेडियो बटन के एक समूह के साथ इस मुद्दे में भाग लिया और फ़ायरफ़ॉक्स पहले को चुनने के बावजूद तीसरा रेडियो बटन 'चेक' संपत्ति है। क्रोम और आईई सही ढंग से चयनित तीसरे बटन को दिखाते हैं। मैंने समूह में प्रत्येक रेडियो बटन को सुझाए गए 'autocomplete = "off"' को जोड़ा और अब फ़ायरफ़ॉक्स सही ढंग से चयनित तीसरा रेडियो बटन दिखाता है। – toyNN

0

ऐसा प्रतीत होता है इस मुद्दे पर कोई जवाब नहीं है कि वहाँ, मैं अभी भी मान यह फ़ायरफ़ॉक्स में एक बग है, लेकिन मैं एक फिक्स

+0

मैंने एक फिक्स पोस्ट किया जो फ़ायरफ़ॉक्स 38.0.5: http: // stackoverflow के लिए काम करता है।कॉम/प्रश्न/7876384/रेडियो-बॉक्स-न-रीसेटिंग-टू-चेक-स्टेटस-इन-फ़ायरफ़ॉक्स/30946161 # 30946161 यह थोड़ा अलग बग था जहां डिफ़ॉल्ट मान बिल्कुल चेक नहीं किया गया था, लेकिन यह आपके सुनिश्चित करता है पृष्ठ लोड होने पर पृष्ठ डिफ़ॉल्ट मान (या सहेजा गया मूल्य इंजेक्शन सर्वर पक्ष) लोड करता है। –

1

रेडियो इनपुट कि जाँच की जानी चाहिए, विशेषता checked="checked" बने रहते हैं ताकि इनपुट तत्व की तलाश में और मैन्युअल रूप से जाँच यह मेरे लिए यह समस्या सुलझा नहीं:

$('input[type="radio"][checked="checked"]').prop('checked', true);

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