फ़ायरफ़ॉक्स चयनित विकल्प "= चयनित"


112

यदि आप एक ड्रॉपडाउन बदलते हैं और पृष्ठ को ताज़ा करते हैं, तो फ़ायरफ़ॉक्स चयनित विशेषता को अनदेखा करता है।

<option selected="selected" value="Test">Test</option>

यह वास्तव में उस विकल्प का चयन करेगा जिसे आपने पहले (ताज़ा होने से पहले) चुना था। यह मेरे लिए एक समस्या है क्योंकि ड्रॉपडाउन पर एक ऐसी घटना होती है जो अन्य चीजों को बदल देती है। क्या इस व्यवहार को रोकने के लिए फ़ायरफ़ॉक्स बनाने का एक तरीका है (पेज लोड होने पर किसी अन्य घटना को फायर करने के अलावा)?


मुझे अब इस समस्या का सामना करना पड़ रहा है और मैं इसका उपयोग करके ठीक कर रहा $('option:selected').each(function(){ $(this).prop('selected',true); });
हूं

मैंने देखा कि यह केवल उन तत्वों का चयन करने के लिए होता है जिनमें एक नाम विशेषता की कमी होती है
Tlacaelel Ramon Luis

3
स्वत: पूर्ण होने का प्रयास करें = "बंद"
hemanjosko

जवाबों:


5

AFAIK, यह व्यवहार फ़ायरफ़ॉक्स में हार्ड-कोडित है।

आप प्रत्येक defaultValueलोड तत्व को पेज लोड पर सेट करने का प्रयास कर सकते हैं ।


1
क्या फॉर्म के भीतर सभी तत्वों के लिए ऐसा करना आसान था?
बंदर-रिंच

jQuery का उपयोग करके @monkey, यह कुछ ऐसा होना चाहिए $(":input").val(this[0].defaultValue);( अप्रकाशित ); सामान्य जेएस में, हालांकि चलेंdocument.getElementsByTagname("select")
पेकका

हालांकि शायद आदर्श समाधान नहीं है, यह काम करता है .. आपको getAttribute पर एक चेक करना होगा ("चयनित")
बंदर-रिंच

8
FYI करें - Marco Demaio
jonlink

281

autocomplete="off"प्रत्येक चयनित टैग में HTML विशेषता जोड़ें । (स्रोत: https://stackoverflow.com/a/8258154/260080 )

यह फ़ायरफ़ॉक्स में ODD व्यवहार को ठीक करता है।


7
यह मेरी प्राथमिकता है (इतना मार्को और बंदर-रिंच धन्यवाद, मेरे बालों के कुछ गुच्छों को बचाया)। और आपको इसे प्रत्येक <इनपुट> "मूल्य" या "चेक किए गए" विशेषता, और किसी भी <textarea> सामग्री के साथ जोड़ना होगा।
स्वानी

22
यह निश्चित रूप से सही उत्तर होना चाहिए। एक जादू की तरह काम करता है।
एंड्रयू सेनर

1
यह एक w3c वैध नहीं है
जोस डे गोविया

1
मुझे विंडोज पर एक ही समस्या थी, फ़ायरफ़ॉक्स वेर 44.0 (2016-जनवरी)। और यह समाधान अभी भी काम करता है।
स्टीवन

1
फ़ायरफ़ॉक्स 47.0 पर एक आकर्षण की तरह काम करता है।
ब्लैकटेक

72

फ़ायरफ़ॉक्स में, मैंने नोटिस किया है कि "चयनित" विशेषता तब तक काम नहीं करेगी जब तक कि आप किसी फॉर्म के अंदर चयन नहीं करते हैं, जहां फॉर्म का नाम विशेषता है।


3
BAM! यह तय है कि जहां स्वत: पूर्ण = "बंद" नहीं था।
Little_birdie

फ़ायरफ़ॉक्स 78.0.2 के साथ मेरे सिर को खरोंचने में एक घंटा बिताया। मेरे रूप पर एक नाम की जरूरत नहीं थी, लेकिन यह एक राहत दे रही है।
betakilo

11

बस एक ही मुद्दा था, मेरा विश्वास करो कि इस बेवकूफ फ़ायरफ़ॉक्स व्यवहार के साथ संघर्ष करते हुए मुझे 10 घंटे से अधिक समय हो गया है, मेरे पास 7 ड्रॉपडाउन हैं, उनमें से प्रत्येक एक घटना को ट्रिगर करेगा और 24 छिपे हुए इनपुटों को भरेगा, जिससे आप सही विकल्प के साथ चयनित होने की कल्पना कर सकते हैं 24 गलत इनपुट वैल्यू !!! समाधान जो मैंने अंत में पाया कि जावास्क्रिप्ट को कोड की इस पंक्ति को जोड़ने के साथ फ़ॉर्म को रीसेट करना है:

window.onload = function() { document.forms['MarkerForm'].reset(); };

पुनश्च: इनपुट में एक डेटाबेस से खींचे गए मान हैं, इसलिए फॉर्म को रीसेट करना किसी भी मूल्य को खाली नहीं करता है लेकिन एक तरह से फ़ायरफ़ॉक्स को नरक में चयनित = चयनित विकल्प पर वापस जाने के लिए कहता है!


यह सही जवाब है। चुनिंदा तत्व पर "स्वत: पूर्ण" का उपयोग करने के लिए कहे जाने वाले उत्तर गलत हैं क्योंकि "स्वत: पूर्ण" W3 के अनुसार किसी चुनिंदा फ़ील्ड के लिए एक मान्य विशेषता नहीं है और इसका कारण होगा "इस बिंदु पर चयन करने वाले तत्व पर स्वत: पूर्ण होने की अनुमति नहीं है।" सत्यापन पर त्रुटियाँ।
स्कॉट

6

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

इसके अलावा, यहाँ पर एक ही मुद्दा: https://stackoverflow.com/a/1505693/1069232

यहां भी देखें: https://bugzilla.mozilla.org/show_bug.cgi?id=274795


ऐसा लगता है कि यह एक फ़ायरफ़ॉक्स सुविधा है।
ओलेक्सी किस्लीत्सिन

5

autocompleteचुनिंदा इनपुट की विशेषता को अक्षम करने का प्रयास करें ... कभी-कभी ब्राउज़र इसकी selectवजह से अनदेखा कर देता है


3

मैं FF 25.0.1 का उपयोग कर रहा हूं

यह अनदेखा करता है selected=""औरselected="selected"

लेकिन अगर मैं बस कोशिश selectedकरता हूं तो विकल्प चुना जाता है।

अजीब (गैर अनुरूप) व्यवहार। मुझे पता selectedहै कि मान्य HTML5 है और यह सबसे छोटा रूप है, लेकिन मैं आमतौर पर कोड लिखता हूं जो अच्छी तरह से एक्सएमएल के रूप में मान्य होता है, ताकि मैं किसी भी XML सत्यापन उपकरण का उपयोग अपने परिणामों को बहुत सख्त तरीके से जांचने के लिए कर सकूं (और डेटा विनिमय बहुत आसान है।) ।)

W3C के अनुसार, ये संस्करण बूलियन विशेषताओं पर मान्य होने चाहिए:

HTML5:  boolAttr="" | boolAttr="boolAttr" | boolAttr
XHTML5: boolAttr="" | boolAttr="boolAttr"

मैं पहले वाले को पसंद करता हूं, क्योंकि यह पिछले (xml अनुरूप नहीं) संस्करण के रूप में लगभग कम है लेकिन XHTML5 और HTML5 दोनों के रूप में मान्य होना चाहिए। तो मुझे उम्मीद है, मोज़िला इसे ठीक कर देगा!


3

.attr () के बजाय .prop () का उपयोग करें

This does not work in firefox.
  $( 'option[value="myVal"]' ).attr( 'selected', 'selected' );
use this one
  $( 'option[value="myVal"]' ).prop( 'selected', 'selected' );

In other way
  $( this ).prop( 'selected', 'selected' );

का उपयोग करना .prop('selected', true);या .prop('selected', false);(jQuery) सक्षम करने के लिए दोनों फ़ायरफ़ॉक्स और क्रोम के लिए / अक्षम काम करता है।
जिमब

2

आप .reset()पृष्ठ को ताज़ा करने से पहले फॉर्म पर कॉल कर सकते हैं ।


2

प्रपत्र विशेषता में चयन चुनें और यह काम करेगा।

<!-- will not work in firefox -->
<option selected="selected" value="Test">Test</option>

तथा

<!-- this will work in firefox -->
<form>
 <option selected="selected" value="Test">Test</option>
</form>

2

नाम के साथ बेहतर है = >>

form id="UMForm" name="UMForm" class="form"

चयन चयनित विशेषता को ले जाएगा


1

यह शायद मोज़िला में एक बग है, लेकिन ड्रॉपडाउन को एक नाम देने का प्रयास करें।


1

स्वतः पूर्ण मेरे लिए भी काम नहीं कर रहा था।

यह जावास्क्रिप्ट फिक्स है जो jquery में लिखा है कि मैं उपयोग करता हूं:

$('input[type="radio"][selected]').click();

1
<option selected="selected" value="Test">Test</option>

इस मामले में यह क्रोम और फ़ायरफ़ॉक्स दोनों के लिए काम करता है।

$('option[value="Test"]').prop('selected', true);

मैं .attr()इसके बजाय उपयोग कर रहा था.prop()


1

ड्रॉपडाउन का पहला आइटम दिखाने के लिए, का उपयोग करें ProjectName.ClearSelection();

सभी ब्राउज़र पर काम करने के लिए अपने डिज़ाइन पृष्ठ में लाइनें डालें और इसे पेज लोड के पीछे कोड पर भी रखें।

$(document).ready(function () {
    $("#content_ProjectName option[value='1']").prop("selected", true);
});

0

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


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

0

यह मेरा समाधान है:

var select = document.getElementById('my_select');
for(var i=0; i < select.options.length; i++){
    select.options[i].selected = select.options[i].attributes.selected != undefined;
}

मैं सिर्फ पृष्ठ के शीर्ष पर (उपयुक्त आईडी सेट के साथ) डालता हूं, और यह मेरे लिए काम करता है। पृष्ठ पर सभी चयनों पर एक लूप के साथ getElementById की जगह, मैं पाठक के लिए एक अभ्यास के रूप में छोड़ देता हूं;)।


0

मेरे लिए ऊपर दिए गए समाधानों में से कोई भी काम नहीं किया। यदि कोई सेट नहीं था तो मुझे स्पष्ट रूप से चयन निर्धारित करना था:

if (foo.find(':selected').length === 0) {
    $(foo.find('option')[0]).attr('selected', 'selected');
}

मेरी इच्छा है कि फ़ायरफ़ॉक्स इसे ठीक करेगा :(


0

काम के दौरान, मैंने बस एक बग तय किया, जहां क्रोम में नहीं बल्कि चुनिंदा बॉक्स विकल्प को ठीक उसी वेब पेज पर फ़ायरफ़ॉक्स में प्रदर्शित किया गया था। यह ऊपर की समस्याओं की तुलना में पूरी तरह से अलग कुछ निकला, लेकिन संभवतः आप एक समस्या का सामना कर सकते हैं।

Chrome में, चयन बॉक्स फ़ॉन्ट-रंग काला था। फ़ायरफ़ॉक्स में किसी कारण के लिए, चयन बॉक्स को कंटेनर से फ़ॉन्ट-रंग विरासत में मिला, जो सफेद था। एक बार मैंने एक सीएसएस नियम जोड़ा जो बलपूर्वक काला होने के लिए बॉक्स फ़ॉन्ट-रंग का चयन करने के लिए, मान सेट ठीक से प्रदर्शित किया गया था।


0

न तो autocomplete="off"अंदर रखनाformमेरे लिए कार्य के ।

जो काम किया गया वह केवल इस तरह से "मान" के साथ चयनित विशेषता का उपयोग करने के लिए था :

<option @(Model.Source == TermSource.Instagram ? "selected" : "")>
    Instagram
</option>
<option @(Model.Source == TermSource.Facebook ? "selected" : "")>
    Facebook
</option>

तो या तो यह प्रतिपादन करता है <option selected>...</option>, या बस<option>...</option>

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.