Rellenar textarea


#1

Hola,

Estoy inetntado que al seleccionar un elemento en un select me rellene
un textarea. En principio funciona, excepto cuando el texto que quiero
meter en el textarea sea de más de una línea.

page << “$(‘oferta_forma_pago’).value=’” + @tipopago.descripcion + “’;”

Que solución puedo darle???

Gracias por adelantado!
Un saludo!


#2

Hola,

un textarea. En principio funciona, excepto cuando el texto que quiero
meter en el textarea sea de más de una línea.

page << “$(‘oferta_forma_pago’).value=’” + @tipopago.descripcion + “’;”

es posible que un escape_javascript te lo arregle. Imagino que aunque
sea una sola línea si le pones una comilla simple en medio se rompe
igualmente. Con el escape lo debería apañar.

saludos,


javier ramírez

…i do ruby on rails development in madrid, spain, at
http://www.aspgems.com
…you can find out more about me on http://formatinternet.wordpress.com
and http://workingwithrails.com/person/5987-javier-ramirez


#3

2008/12/4 Juan JosŽé Vidal Agust’ín removed_email_address@domain.invalid:

Estoy inetntado que al seleccionar un elemento en un select me rellene
un textarea. En principio funciona, excepto cuando el texto que quiero
meter en el textarea sea de más de una línea.

page << “$(‘oferta_forma_pago’).value=’” + @tipopago.descripcion + “’;”

Que solución puedo darle???

Si es una cadena yo suelo usar .to_json. Ese metodo genera tambien las
comillas, por lo que te quedaria

page << “$(‘oferta_forma_pago’).value =
#{@tipopago.descripcion.to_json};”


#4

On 12/4/08, Juan JosŽé Vidal Agust’ín removed_email_address@domain.invalid wrote:

Gracias por adelantado!
Un saludo!


Ror-es mailing list
removed_email_address@domain.invalid
http://lists.simplelogica.net/mailman/listinfo/ror-es

http://mook.wordpress.com/2005/10/30/multi-line-strings-in-javascript/

Nosotros tenemos esta “guarrerida” en el ApplicationHelper:

def multiline_js_string(string)
“().toString()”
end

Se usaría así, por ejemplo:

var wadus = <%= multiline_js_string(@whatever.wadus) %>;

No deja de ser una chapuza pero tampoco he encontrado otra solución…

¿Algún gurú de Javascript en la sala?


Sergio Gil Pérez de la Manga
e-mail > removed_email_address@domain.invalid
blog > http://www.lacoctelera.com/porras
now > http://twitter.com/porras


#5

2008/12/4 Sergio Gil Pérez de la Manga removed_email_address@domain.invalid:

Se usaría así, por ejemplo:

    var wadus = <%= multiline_js_string(@whatever.wadus) %>;

No deja de ser una chapuza pero tampoco he encontrado otra solución…

Yo creo que #to_json es de lo mas sencillo:

$ script/runner ‘puts “foo\015\012bar\015\012baz”.to_json’
“foo\r\nbar\r\nbaz”

He puesto CRLFs para que se vea que si el valor vino de un textarea de
ese modo #to_json te echa lo mismo.

En JavaScript “foo\nbar” es un literal con una cadena multilinea como
lo es en Ruby (no es necesario un heredoc).


#6

En JavaScript “foo\nbar” es un literal con una cadena multilinea como
lo es en Ruby (no es necesario un heredoc).

Que es heredoc? por saber y porque quede más claro el hilo

El día 4 de diciembre de 2008 22:19, Xavier N. removed_email_address@domain.invalid
escribió:> 2008/12/4 Sergio Gil Pérez de la Manga removed_email_address@domain.invalid:


#7

Muchas gracias por la respuesta. Un placer estar por esta lista

Un saludo

El día 5 de diciembre de 2008 10:12, Xavier N. removed_email_address@domain.invalid
escribió:> 2008/12/5 Andrés gutiérrez removed_email_address@domain.invalid:


#8

2008/12/5 Andrés gutiérrez removed_email_address@domain.invalid:

En JavaScript “foo\nbar” es un literal con una cadena multilinea como
lo es en Ruby (no es necesario un heredoc).

Que es heredoc? por saber y porque quede más claro el hilo

Algunos lenguajes, Bash, Perl, Ruby, …, ofrecen una manera de
escribir cadenas multilinea con los saltos de linea en el mismo
codigo:

puts <<EOS
foo
bar
EOS

Ese tipo de literal esta heredado de las shells y se llama “here
document”, o “heredoc” para abreviar tambien.

Mi comentario entre parentesis solo recordaba que se puede escribir
una cadena multilinea sin heredocs. La de arriba es equivalente a

puts “foo\nbar\n”

Por lo que el hecho de que una cadena sea multilinea no añade ninguna
dificultad especial al generar codigo con esa notacion, es un literal
como cualquier otro.


#9

On 12/4/08, Xavier N. removed_email_address@domain.invalid wrote:

$ script/runner ‘puts “foo\015\012bar\015\012baz”.to_json’
“foo\r\nbar\r\nbaz”

He puesto CRLFs para que se vea que si el valor vino de un textarea de
ese modo #to_json te echa lo mismo.

En JavaScript “foo\nbar” es un literal con una cadena multilinea como
lo es en Ruby (no es necesario un heredoc).

La verdad es que mola mucho más con JSON Xavi, no había caído en que
se podía hacer así :smiley:


Sergio Gil Pérez de la Manga
e-mail > removed_email_address@domain.invalid
blog > http://www.lacoctelera.com/porras
now > http://twitter.com/porras