Usar el carácter ' escapado (') produce un error javascript

16/11/2006 - 10:20 por lacayo | Informe spam
Uso IE6. En un formulario necesito pasar una cadena que tiene una comilla
simple. Inexplicablemente, al usar &#039 para representarla dentro del evento
onClick, obtengo un error javascript. Si lo trato de mostrar en otro lugar,
por ejemplo, como contenido de un textarea, no obtengo el error. Igualmente,
usando la represencación de una comilla doble (&#034) funciona bien. ¿Se
trata de un bug del IE?

MI CÓDIGO:
<form...
<table...
...
<input type="radio" name="myRadio" onClick="javascript:selectReg('my
&#039value&039');">
...
 

Leer las respuestas

#1 Ramón Sola [MVP Windows - Shell/User]
19/11/2006 - 02:52 | Informe spam
No es un bug, es el comportamiento esperado. El código &#39; se transforma
directamente en la comilla simple, por lo que esa línea se interpreta de
esta forma:

<input type="radio" name="myRadio"
onClick="javascript:selectReg('my 'value'');">

Por tanto la sintaxis es incorrecta.

Para introducir comillas en una cadena de Javascript encerrada con el mismo
tipo de comillas hay que anteponer el carácter de escape, la barra inversa:

onClick="javascript:selectReg('my \'value\'');"

onClick='javascript:selectReg("my \"value\"");'

La barra inversa se "escapa" consigo misma: "esta es la barra inclinada \\"

Ramón Sola / / MVP Windows - Shell/User
Para obtener la dirección correcta no hacen falta los sellos.
Por favor, usar el correo sólo para cuestiones ajenas a los
grupos de noticias, gracias.

Un buen día, lacayo () tuvo la
irrefrenable necesidad de escribir:
Uso IE6. En un formulario necesito pasar una cadena que tiene una comilla
simple. Inexplicablemente, al usar &#039 para representarla dentro del
evento onClick, obtengo un error javascript. Si lo trato de mostrar en
otro lugar, por ejemplo, como contenido de un textarea, no obtengo el
error. Igualmente, usando la represencación de una comilla doble (&#034)
funciona bien. ¿Se trata de un bug del IE?

MI CÓDIGO:
<form...
<table...
...
<input type="radio" name="myRadio" onClick="javascript:selectReg('my
&#039value&039');">
...

Preguntas similares