How to use javascript to get html special characters in text input

escaping, html, htmlspecialchars, javascript, special-characters

Solution

Depending on what you need the it for you could do one of 3 options:

use the javascript escape and unescape functions:

var escaped = escape('π') // escaped = "%u03C0" which unescape will turn back into π

If you have jQuery available it's html method might do the trick:

$('input').val().html()

This is a hack but will work: Save a copy of the value the way you want it returned on a 'data-' attribute of the input element, this will validate in html5 and won't break in other doctypes.

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

Problem

I want to sent some html special character to text field and then later use javascript to get it back in its original format: like if I sent "&pi", it will shows "π" on the text input, and when I use javascript to get it back, I should get "&pi", but I only can get "π", not "&pi". Please help, my code is like the following: ``` <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" /> ```

Original source