6

HTMLの特殊文字をテキストフィールドに送信し、後でjavascriptを使用して元の形式に戻したい:「&pi」を送信した場合のように、テキスト入力に「π」が表示され、javascriptを使用すると「&pi」を取得する必要がありますが、「&pi」ではなく「π」しか取得できません。助けてください、私のコードは次のようなものです:

<script type="text/javascript"> 
function qpush(a) {
    document.getElementById('input').value += a;
}

function show(a) {
    alert(document.getElementById('input').value);
}
</script>

<input type="text" id="input" />
<input type="button" onclick="qpush('&pi;');" value="&pi;" />
<input type="button" onclick="show()" value="go" />
4

3 に答える 3

3

必要なものに応じて、次の3つのオプションのいずれかを実行できます。

  1. javascriptのエスケープ関数とエスケープ解除関数を使用します。

    var escaped = escape('π')//エスケープ= "%u03C0"このunscapeはπに戻ります

  2. jQueryを利用できる場合は、htmlメソッドでうまくいく可能性があります。

    $('input')。val()。html()

  3. これはハックですが、機能します。入力要素の「data-」属性に返される値のコピーを希望どおりに保存します。これはhtml5で検証され、他のDoctypeで壊れることはありません。

    document.getElementById('input')。setAttribute('data-originalValue'、'&pi')

于 2012-07-17T08:45:40.663 に答える
1

プロパティは、valueHTMLではなくテキストを提供します。

試すこともできますがgetAttribute('value')&pi;HTMLπでも同じように同等であるため、ブラウザも完全に自由に戻るπことができます。

HTMLがDOMに変換されると、元のHTMLにアクセスする方法はありません(XHRを使用してHTMLを再度ダウンロードし、その生のテキストを自分で解析する以外は)。

データを作成する場合"&pi;"は、そのHTMLを.にする必要があります&amp;pi;

それとボタンのレンダリングを希望する場合は、次のπものが必要です。

<button type="button" value="&amp;pi;">π</button>

(old-IEのボタン要素に関するさまざまなバグを念頭に置いてください)

もちろん、&pi;値をテキスト入力にコピーすると表示されます。

于 2012-07-17T08:11:39.143 に答える
-1

これを使用して、出現するすべての文字を置き換えます。

document.getElementById('input').value.replace(/π/g,"&pi;");
于 2012-07-17T08:22:09.087 に答える