Forum: Rails-ES Rellenar textarea

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
E962ae295d82a05193cc180c12bda5d8?d=identicon&s=25 Juan JosŽé Vidal Agust’ín (Guest)
on 2008-12-04 17:35
(Received via mailing list)
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!
1f2eadfb41362800ebc2cf211b91d0f7?d=identicon&s=25 javier ramirez (Guest)
on 2008-12-04 17:42
(Received via mailing list)
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
7223c62b7310e164eb79c740188abbda?d=identicon&s=25 Xavier Noria (fxn)
on 2008-12-04 17:56
(Received via mailing list)
2008/12/4 Juan JosŽé Vidal Agust'ín <juanjova@um.es>:

> 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};"
45742831d67c80d12cd7b24907b8d760?d=identicon&s=25 Sergio Gil Pérez de la Manga (Guest)
on 2008-12-04 19:09
(Received via mailing list)
On 12/4/08, Juan JosŽé Vidal Agust'ín <juanjova@um.es> wrote:
>  Gracias por adelantado!
>  Un saludo!
>  _______________________________________________
>  Ror-es mailing list
>  Ror-es@lists.simplelogica.net
>  http://lists.simplelogica.net/mailman/listinfo/ror-es
>

http://mook.wordpress.com/2005/10/30/multi-line-st...

Nosotros tenemos esta "guarrerida" en el ApplicationHelper:

  def multiline_js_string(string)
    "(<r><![CDATA[#{string}]]></r>).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 > sgilperez@gmail.com
blog > http://www.lacoctelera.com/porras
now > http://twitter.com/porras
7223c62b7310e164eb79c740188abbda?d=identicon&s=25 Xavier Noria (fxn)
on 2008-12-04 22:19
(Received via mailing list)
2008/12/4 Sergio Gil Pérez de la Manga <sgilperez@gmail.com>:
> 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).
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2008-12-05 09:57
(Received via mailing list)
>>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 Noria <fxn@hashref.com>
escribió:> 2008/12/4 Sergio Gil Pérez de la Manga <sgilperez@gmail.com>:
7223c62b7310e164eb79c740188abbda?d=identicon&s=25 Xavier Noria (fxn)
on 2008-12-05 10:13
(Received via mailing list)
2008/12/5 Andrés gutiérrez <andresgutgon@gmail.com>:

>>>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.
Adce10d7f1dbabcdab8f525a59cec32f?d=identicon&s=25 Andrés Gutiérrez (andresgutgon)
on 2008-12-05 10:48
(Received via mailing list)
Muchas gracias por la respuesta. Un placer estar por esta lista


Un saludo

El día 5 de diciembre de 2008 10:12, Xavier Noria <fxn@hashref.com>
escribió:> 2008/12/5 Andrés gutiérrez <andresgutgon@gmail.com>:
45742831d67c80d12cd7b24907b8d760?d=identicon&s=25 Sergio Gil Pérez de la Manga (Guest)
on 2008-12-05 11:01
(Received via mailing list)
On 12/4/08, Xavier Noria <fxn@hashref.com> 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í :D

--
Sergio Gil Pérez de la Manga
e-mail > sgilperez@gmail.com
blog > http://www.lacoctelera.com/porras
now > http://twitter.com/porras
This topic is locked and can not be replied to.