2012-11-08 9 views
7

मेरे पास f.e. के साथ चयन है। 10 विकल्प ('एक', 'दो', 'तीन', ...)। पृष्ठ को लोड करना पहला विकल्प 'एक' चुना गया है।चुनिंदा मान सेट करना कीबोर्ड उपयोग पर कोई प्रभाव नहीं पड़ता

एक समारोह के भीतर मैं पांचवें विकल्प

$("myselect").val('five'); 

वास्तव में करने के लिए सेट अब जागीरों विकल्प का चयन में दिखाया गया है और मूल्य भी सही सेट है।

लेकिन अब जब तक मैं इस चयन तक नहीं पहुंच जाता तब तक मैं अपने फॉर्म में टैब करता हूं। और यदि अब मैं कीबोर्ड डाउन कुंजी का उपयोग करता हूं, तो विकल्प 'दो' और 'छः' विकल्प के लिए चुनता है।

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

+2

केवल फ़ायरफ़ॉक्स में होने लगता है http://jsfiddle.net/JM2dZ/ – Musa

+0

क्रोम में काम करता है, लेकिन फ़ायरफ़ॉक्स नहीं। ड्रॉपडाउन पर भी क्लिक करने से मदद नहीं मिलती है। –

+1

यहां एक ही समस्या के साथ एक jQuery बग है: http://bugs.jquery.com/ticket/11488 –

उत्तर

5

selectedIndex संपत्ति सेट करने का प्रयास करें। नीचे देखें,

$('#myselect').val("5").prop('selectedIndex', 4); 

डेमो:http://jsfiddle.net/kLZ7z/

एक और बेहतर क्लीनर दृष्टिकोण

var nValue = "5"; 
$('option', '#myselect').filter(function() {   
    return this.value == nValue; 
}).prop('selected', true); 

डेमो है:http://jsfiddle.net/kLZ7z/2/

0

थोड़ा भाँप रहे हैं, लेकिन इस प्रयास करें:

$('#myselect option').each(function(){ 
    $(this).removeAttr('selected')); 
}); 
$('#myselect option').eq(4).attr('selected', 'selected'); 

सिर्फ तुम क्या करने की कोशिश करना की एक विचार देने के लिए अपरीक्षित छद्म कोड का एक सा यही कारण है,।

+1

काम नहीं करता है (उत्तर फार्म भी असद नहीं करता है)। - लेकिन जो मैंने अभी पाया - यह एक फ़ायरफ़ॉक्स मुद्दा प्रतीत होता है, क्योंकि आईई और क्रोम की अपेक्षा की जाती है –

+0

@FabianKnauf: 'removeAttr' लाइन' के साथ प्रयास करें। –

1

यह एक फ़ायरफ़ॉक्स बग है। मुझे मिला एक समाधान चुनने पर .val का उपयोग करने के बजाय विकल्प पर .prop('selected', true) का उपयोग करना है।

$('#myselect').children('option[value="five"]').prop('selected', true); 

डेमो: http://jsfiddle.net/JM2dZ/1/

ध्यान दें: आप ऐसा करने से वास्तव में क्या हो रहा रखने के लिए इस मुद्दे को कारण होगा, पहले अन्य विकल्पों पर selected अनसेट की जरूरत नहीं है।

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