Ver Mensaje Individual
  #1 (permalink)  
Antiguo 20/02/2013, 22:11
Avatar de thetwister
thetwister
 
Fecha de Ingreso: agosto-2008
Mensajes: 30
Antigüedad: 16 años, 5 meses
Puntos: 3
Pregunta Agregar texto a textarea con JavaScr + boton y detectar Enters (para pag tipo BBCode)

Hola, estoy haciendo (o intentado ) hacer una textarea con emoticones, botons para hacer el texto a negritas, cursivas, etc etc, como los que se usan aqui o en otros foros usando BBCode

Lo que es del lado de PHP creo que ya casi lo comprendo (remplazar [B] por <strong> por ejemplo) pero ahora me topo con que no se mucho de javascript.

Quiero que por ejemplo arriba del textarea estén los botones para convertir una parte de texto a negritas, cursiva, etc... asi que busqué la menera agregar texto al textarea y me encontré con esto [URL="http://www.mediacollege.com/internet/javascript/form/add-text.html"]http://www.mediacollege.com/internet/javascript/form/add-text.html[/URL].

Ya pude adaptar masomenos el codigo a mi idea usando como base ese tutorial, el problema es que al agregar texto lo hace al final.

Por ejemplo. En un textarea tengo 3 renglones escritos y quiero poner un (B)(/B) en el 2do renglon, pero si presiono el boton de B lo escribe hasta el ultimo renglon al final.
Otro problema es que no se como hacer que se detecten los Enters de manera que si tengo esos 3 renglones y los envio con PHP, se mantenga los renglones en vez de dejarlo todo junto en un solo renglon.

Esto es lo que llevo

Código Javascript:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <head>
  4. <script language="javascript" type="text/javascript">
  5. //Negritas
  6. function add_b() {
  7.     var negritas ="[B][/B]";
  8.     document.myform1.outputtext.value += negritas; 
  9. }
  10.  
  11. //Cursiva
  12. function add_i() {
  13.     var negritas ="[I][/I]";
  14.     document.myform1.outputtext.value += negritas; 
  15. }
  16.  
  17. //Subrayado
  18. function add_u() {
  19.     var negritas ="[U][/U]";
  20.     document.myform1.outputtext.value += negritas; 
  21. }
  22. </script>
  23.  
  24. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  25. <title>Pruebas JS</title>
  26. </head>
  27.  
  28. <body>
  29. <form enctype="multipart/form-data" name="myform1" method="post">
  30. <table width="600" border="0" cellspacing="0" cellpadding="0">
  31.   <tr>
  32.     <td width="300">
  33.         <input type="button" value="B" onclick="add_b()" >
  34.         <input type="button" value="I" onclick="add_i()" >
  35.         <input type="button" value="C" onclick="add_u()" >
  36.       </td>
  37.     <td width="300">&nbsp;</td>
  38.   </tr>
  39.   <tr>
  40.     <td width="300"><textarea name="outputtext" cols="45" rows="5"></textarea></td>
  41.     <td width="300">Boton enviar</td>
  42.   </tr>
  43. </table>
  44. </form>
  45. </body>
  46. </html>

¿alguna sugerencia?

Última edición por thetwister; 20/02/2013 a las 22:19