Ver Mensaje Individual
  #6 (permalink)  
Antiguo 26/02/2013, 11:30
Avatar de patilanz
patilanz
 
Fecha de Ingreso: enero-2012
Mensajes: 880
Antigüedad: 12 años, 3 meses
Puntos: 29
Respuesta: Elementos dentro de campos de formulario

Cita:
Iniciado por emprear Ver Mensaje
Convengamos primero que crear tu propio editor no es muy sencillo

Primero una aclaración, un textarea trata al código html como texto, así que no tendrías que utilizar necesariamente entidades html, salvo que si no lo hacés no te validaría como xhtml, por lo tanto si usas html sin convertirlo a entidades en el textarea, deberías utilizar el doctype de html5, con lo cual te validaría.

Con respecto a colorear un email, puede resolverse facilmente con un split() de javascript, claro que un editor supuestamente puede contener cosas bastante más complejas, por lo habría que utilizar métodos más complejos, expresiones regulares, etc.

Te dejo una demo, pero cuidado que el coloreado solo sirve para emails del tipo
[email protected], si hubiese más puntos en el email, p. ej [email protected], ya no te serviría

Código HTML:
Ver original
  1. <!DOCTYPE html>
  2. <html lang="es-ar">
  3. <meta charset="utf-8" />
  4. <title>titulo</title>
  5. <meta http-equiv="content-type" content="text/html; charset=utf-8" />
  6. <script type="text/javascript">
  7. //<![CDATA[
  8. function pasarAlDiv(ta){
  9. var v = document.getElementById(ta).value;
  10. document.getElementById('resultados').innerHTML =v;
  11. }
  12.  
  13. function colorear(){
  14. var v = document.getElementById('email').value;
  15. var a = v.split('@');
  16. var b = a[1].split('.');
  17. document.getElementById('resultados').innerHTML ="<span style='color: red'>" + a[0] + "</span>@<span style='color: green'>" + b[0] +"</span>.<span style='color: navy'>"+ b[1] +"</span>";
  18. }
  19. //]]>
  20. </head>
  21. <p>Editor 1</p>
  22. <textarea cols="60" rows="3" id="editor1">
  23. &lt;div style=&quot;background: lime; width: 100px; height: 100px;&quot;&gt;
  24. Contenido de div en textarea
  25. &lt;/div&gt;
  26. <button onclick="pasarAlDiv('editor1')">Pasar al div resultados</button>
  27. <p>Editor 2</p>
  28. <textarea cols="60" rows="3" id="editor2">
  29. <div style="background: orange; width: 100px; height: 100px;">
  30. Contenido de div en textarea
  31. </div>
  32. <button onclick="pasarAlDiv('editor2')">Pasar al div resultados</button>
  33. <p>Colorear</p>
  34. <input type="text" value="[email protected]" id="email" size="50" />
  35. <input type="button" onclick="colorear();" value="Colorear" />
  36. </form>
  37. <p>Div resultados</p>
  38. <div id="resultados"></div>
  39. </body>
  40. </html>

Notá que un textarea tiene entidades y el otro no

Saludos

Gracias por tu respuesta pero lo que me decís ya lo se. Lo que necesito es que se coloree dentro del input o textarea y no en una div. Y no he dicho que es fácil hacer lo que pido, solo si me podéis orientar y yo lo intentare hacer, no tengo problema en hacer algo mas complejo.

Saludos