Ich verwende die JQuery-Funktion html (), um JSON-Werte dynamisch in einer Reihe von Options-Dropdowns zu codieren. Die meisten meiner Websites funktionieren wie erwartet einwandfrei:

$('#parameters').html('<option value={"name":"testsalary"}></option>');

<div id=​"parameters">​<option value=​"{"name":​"testsalary"}>​</option>​</div>​

Wenn das JSON-Objekt jedoch ein Leerzeichen enthält, wird es durch Hinzufügen eines doppelten Anführungszeichens unterbrochen, das ursprünglich nicht vorhanden war:

$('#parameters').html('<option value={"name":"test salary"}></option>');

<div id=​"parameters">​<option value=​"{"name":​"test" salary"}>​</option>​</div>​ 

Kennt jemand einen Weg, um das zu umgehen?

1
awhipp 30 Dez. 2015 im 23:51

2 Antworten

Beste Antwort

Sie müssen ein Angebot um Ihren Wert hinzufügen

$('#parameters').html('<option value=\'{"name":"test salary"}\'></option>');

Das wird dich kriegen

<div id=​"parameters">​<option value=​'{"name":​"test salary"}'>​</option>​</div>​ 
1
Abdelrahman M. Allam 30 Dez. 2015 im 21:34

Um dieses Problem zu umgehen, habe ich beschlossen, Leerzeichen als & nbsp zu codieren und sie im Backend zu konvertieren, wenn sie empfangen werden.

So...

$('#parameters').html('<option value={"name":"test salary"}></option>');

Wird

$('#parameters').html('<option value={"name":"test&nbspsalary"}></option>');

Leider wird der Platz im value-Parameter nicht codiert.

0
awhipp 30 Dez. 2015 im 20:51