2012-02-21 9 views
9

मैंJQuery ताज़ा सलेक्ट बॉक्स

$('#select').append('<option value="' + result + '">' + result + '</option>'); 

हालांकि इस सलेक्ट बॉक्स छोड़ देता है इस पद्धति का उपयोग पृष्ठ लोड पर JQuery का उपयोग कर एक का चयन क्षेत्र को आबाद करने कर रहा हूँ 'खाली', यानी विकल्प सूची में पहले मान के रूप में पूर्वचयनित नहीं है चयनित विकल्प।

मैं इस सूची को 'रीफ्रेश' कैसे करूं ताकि पहला मान पूर्व निर्धारित किया जा सके?

खेद है - कहा जाना चाहिए था यह JQuery मोबाइल से पहले

धन्यवाद।

उत्तर

21

आप उस विकल्प तत्व में "चयनित" विशेषता जोड़ सकते हैं जिसे आप चुनना चाहते हैं:

$('#select') 
    .append('<option value="' + result + '" selected="selected">' + result + '</option>'); 

आप एक पाश का उपयोग कर निर्दिष्ट नहीं करते आप कैसे पॉप्युलेट वास्तव में आप तत्व का चयन, आप इस तरह कर सकता है:

var data = ['a', 'b', 'c']; 
var $select = $('#select'); // you might wanna empty it first with .empty() 

for (var i = 0; i < data.length; i++) { 
    var o = $('<option/>', { value: data[i] }) 
     .text(data[i]) 
     .prop('selected', i == 0); 
    o.appendTo($select); 
}​ 

DEMO


तो यह आप jQuery मोबाइल का उपयोग कर रहे लगती है जैसे आपने टिप्पणी में कहा था।

$select.selectmenu("refresh", true); 

Documentation

+0

शायद यह JQuery मोबाइल फॉर्म फ़ील्ड का चयन करने में एक समस्या है क्योंकि इनमें से कोई भी उदाहरण किसी मान का चयन नहीं कर रहा है, हां उसमें (उदाहरण के लिए एक आईफोन पर, जब आप चयनित मूल्य के बगल में एक नीली टिक है तो चयन करें) लेकिन लोड पर चयन बॉक्स सफेद है। बहुत अजीब। – user1202278

+1

आपको निर्दिष्ट करना चाहिए कि आप jquery मोबाइल का उपयोग कर रहे हैं, यह बहुत महत्वपूर्ण जानकारी है! क्या आप selectmenu विजेट का उपयोग कर रहे हैं? –

+0

मैंने तदनुसार अपना जवाब संपादित कर लिया है। –

3

सीधे शब्दों में .. आप मूल्य जो कुछ भी आप चाहते हैं, यानी सेट: $('#select').val(5); .. आपके मामले के अपने $('#select').val(result);

संपादित में इतना: एक पूर्ण काम कर उदाहरण में शामिल हैं:

<script type='text/javascript' src='http://code.jquery.com/jquery-1.6.4.js'></script> 
<select id='select'></select> 
<br> 
<input type=button onclick='addNew()' value='Add'> 

<script> 
function addNew() 
{ 
     var result = Math.floor(Math.random()*1000); 
     $('#select').append('<option value="' + result + '">' + result + '</option>'); 
     $('#select').val(result);   
} 
</script> 

+0

उपयोग कर सकते हैं मुझे डर है कि इसे सुलझाने नहीं कर रहा हूँ, अभी भी खाली पूर्व निर्धारित विकल्प :( – user1202278

+0

मैंने एक कामकाजी उदाहरण – Ashraf

+0

के साथ उत्तर अपडेट किया है शायद यह JQuery मोबाइल फॉर्मों के साथ एक समस्या है जो फ़ील्ड का चयन करें क्योंकि इनमें से कोई भी उदाहरण किसी मान का चयन नहीं कर रहा है, हाँ टोपी (उदाहरण के लिए एक आईफोन पर, जब आप चुनते हैं तो चयनित मूल्य के बगल में एक नीली टिक है) लेकिन लोड पर चयन बॉक्स सफेद है। बहुत अजीब। – user1202278

1

नहीं सभी ब्राउज़र स्वत: चयन ताज़ा:

आप selectmenu विजेट का उपयोग कर रहे हैं, तो आप आप अपनी सामग्री/संरचना करने के लिए कार्यक्रम संबंधी परिवर्तन करने के बाद प्रोग्राम के रूप में ताज़ा करने की आवश्यकता एक नया विकल्प जोड़ने के बाद।

एक चाल जो मेरे लिए काम करती है वह छुपा रही है और इसमें नए विकल्प जोड़ने के बाद ही चयन बॉक्स दिखा रहा है। तो आपके मामले में:

$('#select').append('<option value="' + result + '">' + result + '</option>').hide().show(); 

सही नए जोड़े गए विकल्प का चयन का सवाल है, का पालन के साथ:

$('select').val(result); 
3

आप

$('#select').removeAttr('selected').find('option:first').attr('selected', 'selected'); 
+0

शायद यह JQuery मोबाइल फॉर्म फ़ील्ड का चयन करने में एक समस्या है क्योंकि इनमें से कोई भी उदाहरण मूल्य का चयन करने से पहले नहीं है, हां उसमें (उदाहरण के लिए एक आईफोन पर, जब आप चुनते हैं तो वहां एक नीली टिक है चयनित मूल्य पर) लेकिन लोड पर चयन बॉक्स सफेद है। बहुत अजीब। – user1202278