2017-12-05 1 views
-1

Ich versuche, ein JSON wie dieses zu erstellen und es Server per Formpost zu senden. Alle diese JSON-Werte stammen aus ausgewählten Optionen in der Benutzeroberfläche.Wie man ein JSON mit js so baut?

{ 
    "pages":[ 
     { 
     "id":"messages", 
     "name":"yourinbox", 
     "value":"ACTIVE" 
     }, 
     { 
     "id":"emails", 
     "name":"newmail", 
     "value":"INACTIVE" 
     } 
    ] 
} 

Ich habe mit unten Code versucht, aber ich bin nicht in der Lage, das richtige Format zu bekommen. Irgendwelche Hilfe? Vielen Dank!

var self = this; 
var request = new HttpRequest(); 
this.form$ = $(selector); 
self.form$.find('.loader').hide(); 

this.onSubmit = function(e){ 
hideSubmit(); 
e.preventDefault(); 
e.stopPropagation(); 
var parsedata = {}; 
var data = {}; 
var selectedOptions = self.form$.find('select'); 
for (var i = 0, ii = selectedOptions.length; i < ii; ++i) { 
var input = selectedOptions[i]; 
data["name"] = input.id; 
data["value"] = input.value; 
parsedata.push(data); } }; 
+1

Wo ist der Rest des Codes? 'self' bezieht sich auf' window' ... Was sollen die anderen Eigenschaften/Methoden sein? – Teemu

+0

Ich bin in der Lage, alle ausgewählten Elemente zu bekommen, es gibt kein Problem mit sich selbst. Aktualisierter Beitrag mit dem Rest des Codes – dragonfly163

Antwort

0

Dies ist der grobe Ansatz; Fühlen Sie sich frei zu improvisieren.

let object = {"pages" : []}; 
 

 
let options = document.getElementsByTagName("option"); 
 

 
for(i=0;i<options.length; i++) { 
 
    object["pages"][i] = {} 
 
    object["pages"][i]["id"] = options[i].getAttribute('id'); 
 
    object["pages"][i]["value"] = options[i].getAttribute('value'); 
 
    let activeStatus = options[i].getAttribute('selected'); 
 
    if(activeStatus == "true") object["pages"][i]["activeStatus"] = activeStatus; 
 
    else object["pages"][i]["activeStatus"] = false; 
 
} 
 

 
console.log(object)
<select> 
 
<option id="1" value="One" selected=true>One</option> 
 
<option id="2" value="Two">Two</option> 
 
<option id="3" value="Three">Three</option> 
 
<option id="4" value="Four">Four</option> 
 
</select>