Quiero enviar algo de html carácter especial para el campo de texto y luego usar javascript para obtener de vuelta en su formato original: como si me lo envió «&pi», se muestra «q» en la entrada de texto, y cuando puedo usar javascript para conseguir la vuelta, yo debería obtener «&pi», pero sólo se puede obtener la «q», no «&pi». Por favor ayuda, mi código es como el siguiente:

<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" />

OriginalEl autor kli | 2012-07-17

3 Comentarios

  1. 3

    Dependiendo de lo que necesita el para que pudiera hacer una de 3 opciones:

    1. utilizar el javascript de escape y unescape funciones:

      var escapó = escape(‘q’) //escapó = «%u03C0» que unescape volverá a transformarse en π

    2. Si usted tiene jQuery disponible es html método podría hacer el truco:

      $(‘input’).val().html()

    3. Este es un hack, pero el trabajo: Guardar una copia del valor de la manera que usted desea devueltos en un ‘datos’ atributo del elemento de entrada, se validará en html5 y no se rompe en otros doctypes.

      documento.getElementById(‘input’).setAttribute(‘data-valororiginal’, ‘&pi’)

    Gracias por la ayuda, yo lo uso de forma literal para los datos, y sin escape formulario para la pantalla, funciona bien.
    Genial, me alegra ser de ayuda 🙂
    Por cierto, Si te gusta mi respuesta, puedes votar hasta por favor?

    OriginalEl autor Lior

  2. 1

    La value propiedad le dará texto, no en HTML.

    Usted podría tratar de getAttribute('value') pero desde &pi; y π de manera idéntica equivalente en HTML, es un navegador totalmente gratis para devolver π para eso.

    una Vez que el HTML se ha convertido en un DOM, no hay manera de acceder al HTML original (corto de descargar el HTML de nuevo con XHR y analizar el texto en bruto de ti mismo).

    Si desea que los datos a ser "&pi;", a continuación, el código HTML debe ser &amp;pi;.

    Si quieres que y la representación en el botón de π entonces usted necesita:

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

    (Teniendo en cuenta los diversos errores que de edad-es decir, con el elemento de botón)

    Que, por supuesto, mostrar &pi; cuando se copia el valor para la entrada de texto.

    Gracias por tu ayuda, pero en el documento.getElementById(‘input’).getAttribute(‘valor’) devuelve null.
    Oh, perdió este fue un elemento diferente que usted estaba recibiendo el valor de. getAttribute devuelve el valor del atributo (que es el valor predeterminado de la entrada) no es el valor actual.

    OriginalEl autor Quentin

  3. -1

    Utilizar este servicio para reemplazar todas las apariciones del personaje:

    document.getElementById('input').value.replace(/π/g,"&pi;");
    bonito solución, pero necesito hacerlo para todos los caracteres especiales, no sólo π.
    Usted podría mantener una matriz de especial asignaciones de entidad que ejecuta la reemplace.
    He intentado, pero parece que reemplazar() no se puede utilizar para muy caracteres especiales como π.
    me funciona: jsfiddle.net/mNexE

    OriginalEl autor Christoph

Dejar respuesta

Please enter your comment!
Please enter your name here