Re: [JavaSOS] Re: OT: ajax, javascript y los retornos de carro SOLUCION

299 views
Skip to first unread message

QuiQue

unread,
Feb 12, 2009, 5:51:44 AM2/12/09
to jav...@googlegroups.com
buenas
 
al final lo he solucionado asi:
miVaribaleJS.replace(/çç/g,"\n") donde las çç es lo que cambio por el retorno de carro.
 
curiosamenete, si ponia una | o dos || me ponia tambien el retorno de carro pero me dejaba la |. he tenido que cambiar el simbolo para que no me lo dejara, es decir, con | me añadia y con otro simbolo me sustituye, que es lo que yo queria.
 
seguro que hay una solucion mas elegante de hacerlo, pero por lo menos esta funciona.
 
gracias a todos por vuestros aportes
 
saludos
 
QuiQue

2009/2/11 andres dengra <andres...@gmail.com>
Hola!! a mi en gral Json me trajo bastantes problemas lo que me obligo a cambiar por gson y esta siempre me andubo barbaro, el manejo es bastante parecido asi que yo te diria que la pruebes

Saludos

2009/2/11 QuiQue <quiqu...@gmail.com>

hola list@
 
perdon por el OT, pero ya no se a donde recurrir.
 
tengo un servlet+jsp que utiliza la libreria json para comunicaciones ajax.
 
el tema es que me funciona bien, sin problema, pero cuando meto un enter la cosa deja de funcionar. me explico:
tengo un textarea en el jsp que es un comentario de texto libre. si meto "hola que tal?" me llega al servlet "hola que tal?" pero si meto
"hola
que
tal?"
me llega al servlet "holaquetal?"
 
he estado poniendo alerts por todo el javascript y al final he visto que mi javascritp esta bien, pero cuando me llega el valor al servlet ya esta mal, asi que "se pierde por el camino"... y ese camino son las clases de json que no puedo visualizar :)
 
asi que, como no puedo arreglarlo por aqui, he decidido hacer una pequeña ñapa. antes de llamar a jsopn, mi javascript lo que hace es que si hay un enter (\n) meter un pipe (|) y en el servlet hago lo contrario, es decir, antes de insertar en la base de datos si me llega un | lo sustituyo por un \n
 
hasta aqui todo bien
 
pero la cosa se estropea cuando tengo que pintarlo en el jsp. por temas que no vienen al caso no puedo pintar en el jsp directamente la varibale java asi <=%miVaribale=> la cual viene bien con su retorno de carro. el tema es que tengo que almacenar la variable java en una variable javascript, de manera que la cosa queda asi:
var c =  '<%=miVariable=>';
 
y aqui es cuando casca, ya que el navegador me dice que hay un error de javascript. si le doy a ver el codigo fuente, lo que tengo es algo asi:
var c = 'hola
adios';
 
supongo que al navegador no le gusta que el javascript este dividido en varias lineas
 
alguien sabe como puedo solucionarlo elegantemente o como puedo al menos solucionar mi parchecillo?

--

saludos

QuiQue




Raúl Contreras

unread,
Feb 12, 2009, 6:42:49 AM2/12/09
to jav...@googlegroups.com
Yo normalmente encierro todo el contenido del texto libre entre una etiqueta  <pre> </pre> , y no me da problemas.
Posiblemente la puedas adaptar en el frontend
<textarea name="comentarios" rows="10" cols="30">
   <pre><%=miVariable> </pre>
</textarea>
--
Raúl Contreras
Murcia, España

fav

unread,
Feb 13, 2009, 7:27:49 AM2/13/09
to JavaSOS
OT: la definición de textarea para html >= 4 sólo permite PCDATA
dentro del tag, no es válido incluir tags dentro del tag textarea
http://www.w3.org/TR/html4/interact/forms.html#edef-TEXTAREA

<!ELEMENT TEXTAREA - - (#PCDATA) -- multi-line text field -->

On 12 feb, 09:42, Raúl Contreras <raul.contreras.cas...@gmail.com>
wrote:

Raúl Contreras

unread,
Feb 13, 2009, 9:02:17 AM2/13/09
to jav...@googlegroups.com
es verdad!
pues puede probar con un
<textarea wrap="pre" cols="10" rows="10"
 name="texto"><%=miVariable> </textarea>

o alguna otra opción del wrap...

2009/2/13 fav <fav...@gmail.com>

David Castañeda

unread,
Feb 13, 2009, 10:08:26 AM2/13/09
to jav...@googlegroups.com
si utilizabas | tenias que escaparlo porque tiene significado en una
expresión regular cuando haces el replace

2009/2/13 Raúl Contreras <raul.contr...@gmail.com>:
--
David Castañeda R.

Jose Mora Fallas

unread,
Feb 13, 2009, 10:16:55 AM2/13/09
to jav...@googlegroups.com
yo lamento haber llegado tarde, pero para conservar los retornos de carro con javascript utilizo la función escape(), donde pasas el texto, y lo que hace es convertir todos los caracteres especiales a la forma en que lo hace el navegador.
--
_________________________
Jose Manuel Mora Fallas
www.acto.go.cr
Reply all
Reply to author
Forward
0 new messages