Auch wenn ich die vorgeschlagenen Methoden gesehen und funktioniert habe, denke ich, dass das Setzen des Werts eines versteckten Feldes nur mit JSON.stringify das HTML kaputt macht...
Hier werde ich erklären, was ich meine:
Wie Sie sehen können, könnte das erste doppelte Anführungszeichen nach der öffnenden Kette von einigen Browsern als interpretiert werden:
Für einen besseren Ansatz dazu würde ich vorschlagen, die encodeURIComponent Funktion zu verwenden. Zusammen mit dem JSON.stringify sollten wir etwas Ähnliches wie folgt haben:
> encodeURIComponent(JSON.stringify({"name":"John"}))
> "%7B%22name%22%3A%22John%22%7D"
Jetzt kann dieser Wert sicher in einem versteckten Eingabetyp gespeichert werden, wie folgt:
oder (noch besser) mit dem data-Attribut des HTML-Elements, das vom Skript manipuliert wird, das die Daten verbrauchen wird, wie folgt:
Jetzt können wir die Daten wie folgt zurücklesen:
> var data = JSON.parse(decodeURIComponent(div.getAttribute("data-json")))
> console.log(data)
> Object {name: "John"}
0 Stimmen
Sieh es auch hier: stackoverflow.com/questions/11118947/…