2012-04-09 4 views
2

füllen Ich erstelle ein Benutzerregistrierungsformular mit JSP, in dem es eine Option gibt, State aus einem Kombinationsfeld auszuwählen.Ich verwende ein einfaches HTML-Kombinationsfeld, aber ich erhalte State als ein JSON-Objekt von Web-Service.So wie das Kombinationsfeld mit JSON-Objekt aufzufüllen.Wie HTML-Kombinationsfeld mit JSON-Objekt

Staat Json ist wie folgt,

{"States":[{"id":"1","stateName":"Alabama","code":"AL"}, 
{"id":"4","stateName":"Arkansas","code":"AR"}, 
{"id":"8","stateName":"Delaware","code":"DE"}]} 

Meine Javascript-Funktion,

function getStates(){  
url = WSPath; 
response=initiateRequest(url);} 

Mein HTML-Combo-Box ist <select name="State">

Ich brauche die Combo-Box mit dem oben zu füllen JSON-Objekt.

+0

Eine Combobox ist eine Kombination aus einem Dropdown-Menü und einer Texteingabe (daher der Name). Ein ausgewähltes Element erzeugt keins. – Quentin

+1

Tun Sie dies nicht mit JavaScript, es ist ineffizient und weniger zuverlässig als einfach (auf dem Client) HTML. Tun Sie es mit JSP und zwischenspeichern Sie die Ergebnisse. – Quentin

Antwort

4

Reines js:

var select = document.createElement("select"); 
var obj = JSON.parse(response); 

for (var i=0; i < obj.States.length; i++) 
{ 
    var option = document.createElement("option"); 
    option.id = obj.States[i].id; 
    option.value = obj.States[i].code; 
    option.innerHTML = obj.States[i].stateName; 
    select.appendChild(option); 
} 

Tweak die ID, den Wert und innerHTML- auf Ihre Bedürfnisse.

+0

Hallo Danke für Ihre Antwort. Ich habe versucht, wie Sie erwähnt, aber ich erhielt einen Fehler bei var obj = JSON.parse (Antwort); – user1321824

+1

Was ist der Fehler? Ich weiß nicht, wie du den JSON liest. Ich ging davon aus, dass die Antwort die JSON-Zeichenfolge enthält. Wenn es bereits analysiert wurde, brauchen Sie diesen Aufruf von JSON.parse nicht. – mihai

+0

"states" ist nutzlos Sie brauchen das Array mit Objekten im Inneren. –