サンプルに表示するパラメーターには、htmlエンティティが含まれています。それらをデコードしようとしていますか?これを行うためのネイティブメソッドはJavascriptにはありませんが、次のコードスニペットを使用できます(jQueryが必要です)。
$("<div>").html(""").html();
あなたの場合:
var countryName = $("<div>").html(countryName).html();
var countryCode = $("<div>").html(countryCode).html();
または、ジェネリック関数を使用します。
function decodeHtmlEntities(value)
{
return $("<div>").html(value).html();
}
と
function setEditMode(countryName, countryCode)
{
document.getElementById("txtCountryName").value=decodeHtmlEntities(countryName);
document.getElementById("txtCountryCode").value=decodeHtmlEntities(countryCode);
}
または
、jQueryを使用してdivタグを作成する気がない場合は、次の関数を使用してください:http: //phpjs.org/functions/html_entity_decode :424。
編集:あなたのコメントに基づいています。インラインスクリプトのエンティティに問題があるよう"
です。'
次のようなメソッドを呼び出すことで解決できます。
<input type="button" value="Submit" id="btnEdit" name="btnEdit" onclick="setEditModeWrapper()" />
<script type="text/javascript">
function setEditModeWrapper()
{
setEditMode(''xx' "yy" # $', '"'');
}
</script>
また、入力フィールドでこれらの'をデコードする場合は、このソリューションを上記のデコード関数と組み合わせます。
またはもっと上品:
<input type="button" value="Submit" class="submitBtn" id="btnEdit" name="btnEdit" data-countryname="'xx' "yy" # $" data-countrycode=""'" />
<script tyoe="text/javascript">
$(".submitBtn").on("click", function(e)
{
var btn = $(e.currentTarget);
var countryName = btn.attr("data-countryname");
var countryCode = btn.attr("data-countrycode");
setEditMode(countryName, countryCode);
});
</script>
スクリプトタグをページの下部に配置すると、data-countryname属性とdata-countrycode属性に基づいてすべての送信ボタンが処理されます。onclickハンドラーでデータをレンダリングするのと同じ方法でそれらをレンダリングします。