2017-10-26 10 views
0

javascriptでプレースホルダテキストを設定すると、特殊文字が正しく表示されません。JavaScriptで設定されたプレースホルダテキストHTMLでエンコードされた特殊文字をデコードしない

function myFunction() { 
 
    document.getElementById("myText").placeholder = "Événement"; 
 
}
<input type="text" id="myText" placeholder="&#201;v&#233;nement"> 
 

 
<p>Click the button to change the placeholder text of the text field.</p> 
 

 
<button onclick="myFunction()">Try it</button>

出力は次のとおりである: "&#201; V &#233; nement"

予想される出力:私ができるjavascriptのソリューションを探して、 "Événement"

エンコードされた文字を含むテキストを変換します。

+1

これはあなたの質問にお答えしますか? https://stackoverflow.com/questions/3700326/decode-amp-back-to-in-javascript – Calaris

+0

Firefoxでうまく動く –

+0

'document.getElementById(" myText ")だけではできない理由はありますか?プレースホルダ= "Événement"; '? – Walk

答えて

1

だろう変換する最も簡単な方法は、要素を作成innerHTMLのようにHTMLエンティティを設定し、textConetntを取得し、このようなものです:

function myFunction() { 
 
    let a = document.createElement('span'); 
 
    a.innerHTML = '&#201;v&#233;nement from JS'; 
 
    document.getElementById("myText").placeholder = a.textContent; 
 
}
<input type="text" id="myText" placeholder="&#201;v&#233;nement"> 
 

 
<p>Click the button to change the placeholder text of the text field.</p> 
 

 
<button onclick="myFunction()">Try it</button>

1

HTMLでは、特殊文字は&#XXX&#201のように)でエンコードされます。 JavaScriptで

、特殊文字をエスケープコードのリストについては\uXXXX(同様\u00C9

チェックhttps://en.wikipedia.org/wiki/List_of_Unicode_charactersでエンコードされています。あなたのケースでは

、それは

document.getElementById("myText").placeholder = "\u00C9v\u00E8nement";

+0

私は文字列を制御しません、私は与えられたものを変換する方法を探しています。 –

関連する問題