2016-07-11 19 views
0

Ich habe ein Problem bei dem Versuch, den Wert eines Eingabefeldes festzulegen, wenn HTML-Entitäten verwendet werden, sodass sie wörtlich als " statt " ausgegeben werden. HierFestlegen eines Elementwerts mithilfe von HTML-Entitäten

ist der Code, ich verwende:

document.getElementById('inputSurname').setAttribute('value', 'test"""'); 

in dem der Ausgang ist test""" obwohl ich die Ausgabe wollen test""" sein.

Es sieht nicht wie ein Doppelcodierungsproblem aus, da ich es im Quellcode genauso sehe, wie ich es hier eingestellt habe.

Ich weiß, dass ich den Wert aus seinem HTML-Entitätsformat decodieren konnte, obwohl dies etwas ist, das ich aus Sicherheitsgründen vermeiden möchte.

Jede Hilfe wäre sehr geschätzt :)

+2

Sie können keine HTML-Code in einem Formularfeld haben, nur Text. Es ist der gleiche Grund, warum Sie den Wert einer Eingabe nicht fett über den Wert festlegen können, nur CSS – j08691

Antwort

2

Try this:

document.getElementById('inputSurname').value = 'test"""'; 

Oder wenn Sie & quot behalten möchten:

function myFunction() { 
    document.getElementById('myText').value = replaceQuot('test&quot&quot&quot'); 
} 
function replaceQuot(string){ 
    return string.replace('&quot', '""'); 
} 
+0

Das Problem ist, dass ich den Wert als '"' speichern, und weil es Benutzereingaben ist, möchte ich nicht wirklich um die HTML-Entitäten zu dekodieren. – harryjamesuk

+0

Verwenden Sie Jquery oder eckiges Framework? –

+0

Ich benutze jQuery. – harryjamesuk

0

Nun könnte man einfach den neuen Wert schreiben als 'test"""'. jedoch

Für andere Zeichen, ich werde Ihnen diese Antwort verweisen: HTML Entity Decode

1

Oder können Sie Escape-Zeichen verwenden.

document.getElementById("inputSurname").setAttribute("value", "test\"\"\"\"");