2013-07-18 7 views
28

Chciałbym dodać opcję do wyboru dynamicznie za pomocą zwykłego javascript. Wszystko, co mogłem znaleźć, obejmuje JQuery lub próbuje dynamicznie tworzyć zaznaczenie. Najbliższą rzeczą, jaką mogłem znaleźć, było Dynamically add input type select with options in Javascript, które robi to drugie i jedyne, co znalazłem, nie obejmuje JQuery. Mimo, że nie spróbować i używać go tak:jak dynamicznie dodawać opcje do istniejącego zaznaczenia w javascript wanilli

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

Po Zrobiłem to nie było zmiany select a wpisowi dał mi

HELLO WORLD</option'> 

Przepraszam, jeśli jest to proste, ale jestem bardzo nowy w javascript i ogólnie w programowaniu sieciowym. Dziękuję za wszelką pomoc.

EDYCJA: Próbowałem więc podanych sugestii w ten sposób.

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

Nie zmieniło to wcale wyboru na stronie. Każdy pomysł, dlaczego? Sprawdziłem, czy kod był uruchamiany z alertem.

EDYCJA: Pomysł zadziałał, okazało się, że nie wyświetlał wartości w menu rozwijanym. Nie wiem dlaczego, ale potrafię to wymyślić.

+0

nie są potrzebne te pojedyncze cytaty po "opcji". –

+0

powinien być "" "' – mkoryak

+0

Tak, pojedyncze cytaty są nie tylko niepotrzebne, ale są błędem składni w HTML. –

Odpowiedz

55

Ten poradnik pokazuje dokładnie to, co trzeba zrobić: Add options to an HTML select box with javascript

Zasadniczo:

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

Ta sugestia spowodowała, że ​​mój tekst został poprawnie wyświetlony, podczas gdy inne sugestie z jakiegoś powodu nie mogły. – avorum

+0

najlepsza odpowiedź po przeszukaniu innych rzeczy –

+2

Możesz także użyć 'daySelect.options.add (nowa opcja (" Klucz "," Wartość "))' – JorgeGarza

13

Chyba coś takiego wykonałoby zadanie.

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

Mieć skrzypce: http://jsfiddle.net/23Fgm/ - Różne dane, ta sama koncepcja. – tymeJV

+0

@tymeJV, dziękuję za dodanie skrzypce – intuitivepixel

+0

document.createElement ("dzień") -> "dzień" nie jest właściwą nazwą tagu, zamiast tego chcesz "opcję". – Lochemage

5

Użyj funkcji document.createElement, a następnie dodaj ją jako element podrzędny wybranego elementu.

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

Spróbuj tego;

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() również działa.

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

W3 School - try

Powiązane problemy