2013-07-18 4 views
28

में मौजूदा चयन में विकल्पों को गतिशील रूप से जोड़ने के लिए कैसे मैं सादे जावास्क्रिप्ट का उपयोग करके गतिशील रूप से चुनिंदा विकल्प में विकल्प जोड़ना चाहता हूं। जो कुछ भी मैं पा सकता हूं वह JQuery शामिल है या चुनिंदा गतिशील रूप से भी बनाने की कोशिश करता है। सबसे नज़दीकी चीज जो मुझे मिल सकती थी Dynamically add input type select with options in Javascript जो बाद में करता है और केवल मुझे मिला कि इसमें JQuery शामिल नहीं है। हालांकि मैं तो जैसे कोशिश करते हैं और का उपयोग किया था: बाद मैं ऐसा कियावेनिला जावास्क्रिप्ट

daySelect = document.getElementById('daySelect'); 
daySelect.innerHTML += "<option'>Hello world</option'>"; 
alert(daySelect.innerHTML) 

चुनने के लिए कोई परिवर्तन किया गया और सतर्क मुझे

HELLO WORLD</option'> 

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

संपादित करें: इसलिए मैंने दिए गए सुझावों का प्रयास किया।

daySelect = document.getElementById('daySelect'); 
myOption = document.createElement("option"); 
myOption.text = "Hello World"; 
myOption.value = "Hello World"; 
daySelect.appendChild(myOption); 

इसने पृष्ठ में चयन को बिल्कुल नहीं बदला है। कोई विचार क्यों? और मैंने जांच की कि कोड एक चेतावनी के साथ चलाया जा रहा था।

संपादित करें: विचार काम करता है, यह अभी पता चला है कि यह ड्रॉपडाउन में एक मूल्य प्रदर्शित नहीं कर रहा था। मुझे नहीं पता क्यों, लेकिन मुझे लगता है कि मैं इसे समझ सकता हूं।

+0

"विकल्प" के बाद उन एकल उद्धरण आवश्यक नहीं हैं। –

+0

होना चाहिए "" ' – mkoryak

+0

हां, एकल उद्धरण केवल अनावश्यक नहीं हैं, वे HTML में एक वाक्यविन्यास त्रुटि हैं। –

उत्तर

55

इस ट्यूटोरियल वास्तव में पता चलता है कि आप क्या करने की जरूरत: Add options to an HTML select box with javascript

असल:

daySelect = document.getElementById('daySelect'); 
daySelect.options[daySelect.options.length] = new Option('Text 1', 'Value1'); 
+2

यह सुझाव मेरे पाठ को सही तरीके से प्रदर्शित करने में कामयाब रहा, जबकि किसी कारण से अन्य सुझाव नहीं हो सके। – avorum

+0

अन्य सामानों के माध्यम से खोज करने के बाद सबसे अच्छा जवाब –

+2

आप 'daySelect.options.add (नया विकल्प ('कुंजी', 'मान') का भी उपयोग कर सकते हैं)' – JorgeGarza

13

मुझे लगता है कि ऐसा कुछ काम करेगा।

var option = document.createElement("option"); 
option.text = "Text"; 
option.value = "myvalue"; 
var select = document.getElementById("daySelect"); 
select.appendChild(option); 
+2

एक पहेली है: http://jsfiddle.net/23Fgm/ - विभिन्न डेटा, एक ही अवधारणा। – tymeJV

+0

@tymeJV, फिडल – intuitivepixel

+0

दस्तावेज़.क्रेट एलीमेंट ("दिन") जोड़ने के लिए धन्यवाद -> 'दिन' उचित टैग नाम नहीं है, आप इसके बजाय 'विकल्प' चाहते हैं। – Lochemage

5

document.createElement फ़ंक्शन का उपयोग करें और फिर इसे अपने चयन के बच्चे के रूप में जोड़ें।

var newOption = document.createElement("option"); 
newOption.text = 'the options text'; 
newOption.value = 'some value if you want it'; 
daySelect.appendChild(newOption); 
0

इस प्रयास करें;

var data = ""; 
    data = "<option value = Some value> Some Option </option>";   
    options = []; 
    options.push(data); 
    select = document.getElementById("drop_down_id"); 
    select.innerHTML = optionsHTML.join('\n'); 
0

.add() भी काम करता है।

var daySelect = document.getElementById("myDaySelect"); 
var myOption = document.createElement("option"); 
myOption.text = "test"; 
myOption.value = "value"; 
daySelect.add(option); 

W3 School - try

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