2017-02-16 3 views
0

bevöl ich diesen Code, wo ich einen Attributwert zu packen und sie in eine Form laden, kann die Überschrift Linie etwas wie folgt aussehen:String Escaping JavaScript verwenden, bevor Formulareingabe

Willkommen in Amerikas beste was

bewertet

Aber wenn diese Escape-Funktion verwendet, wird der String an der Apostroph abgeschnitten,

var headline = escape($(this).attr("data-headline")); 

//populate the textbox 
$(e.currentTarget).find('input[name="headline"]').val(headline); 

ich habe auch versucht, hier die Lösungen mit: HtmlSpecialChars equivalent in Javascript? ohne Glück.

Wie kann ich meine Eingabe auffüllen und Apostroph/Anführungszeichen beibehalten?

+0

Sie können nur '$ verwenden ('input [name = "Überschrift"]', e.currentTarget)' vs wählen zu wählen und finden. Warum musst du es im Javascript entkommen? Nur das Setzen des Wertes sollte keine Probleme verursachen. – Marie

+0

Was ist der Sinn, hier 'Flucht 'zu nennen? a) [tut es nicht] (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/escape) was Sie denken, dass es tut b) es gibt keine Notwendigkeit, eine Zeichenfolge zu entkommen, die geht in '.val()'! – Bergi

+0

'escape' scheint veraltet zu sein und wird meistens für' URIs' verwendet anstatt für Apostrophe. – Kaddath

Antwort

0

Verwenden Sie einfach

$(this).find('input[name="headline"]').val(this.dataset.headline); 

keine Notwendigkeit für eine Entkommen.

Beachten Sie jedoch, dass escape keine Apostrophen schneidet, sondern sie durch ersetzt. Wenn Ihr aktueller Code nicht mit Hochkommas in der Überschrift arbeitet, stellen Sie sicher, dass das Markup, das das data-headline-Attribut enthält, von dem Tool, das es erstellt, ordnungsgemäß ausgeblendet wird.

+1

Danke für den Hinweis, du hattest Recht, das Attribut richtig zu umgehen. Mit PHP funktionierte das für mich:

-2
var headline = $(this).attr("data-headline").replace(/'/g, '%27'); 
//populate the textbox 
$(e.currentTarget).find('input[name="headline"]').val(unescape(headline)); 

Wenn Browser-Kompatibilität wichtig ist, Datensatz ist nur verfügbar, IE11 + https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/dataset#Browser_compatibility

+0

Sie wissen, dass 'unescape() 'veraltet ist, oder? Neue Versionen von Browsern können die Kompatibilität vollständig beeinträchtigen. –

Verwandte Themen