Foros del Web » Programando para Internet » Javascript »

[SOLUCIONADO] contar caracteres textarea con editor de texto

Estas en el tema de contar caracteres textarea con editor de texto en el foro de Javascript en Foros del Web. Buenas!! Hace unos dias que estoy intentando contar los caracteres en un textarea que tiene un editor de texto enriquecido. Cuando el textarea es normal ...
  #1 (permalink)  
Antiguo 28/01/2013, 16:26
 
Fecha de Ingreso: diciembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
contar caracteres textarea con editor de texto

Buenas!!
Hace unos dias que estoy intentando contar los caracteres en un textarea que tiene un editor de texto enriquecido.
Cuando el textarea es normal (sin el editor de texto) la mayoria de los ejemplos que he visto me funcionan, pero cuando pongo el editor, (he usado varios y siempre pasa lo mismo) deja de funcionar el contador.
En un foro lei que no era posible contar los caracteres con un editor de texto.
Eso es cierto??
Lo que quiero es poner un maximo de caracteres a entrar en un post o articulo.
No pongo codigo porque no se si es posible lo que quiero.
Gracias
  #2 (permalink)  
Antiguo 28/01/2013, 19:44
Avatar de ryugen
Colaborador
 
Fecha de Ingreso: agosto-2008
Ubicación: Rosario, Santa Fe
Mensajes: 350
Antigüedad: 15 años, 8 meses
Puntos: 187
Respuesta: contar caracteres textarea con editor de texto

Suponiendo
Código HTML:
Ver original
  1. <textarea id="editor"></textarea>

Probaría con la siguiente función :

Código Javascript:
Ver original
  1. function contarCaracteresDelTexto () {
  2.     var txt = document.getElementById('editor');
  3.     var div = document.createElement('div');
  4.     div.innerHTML = txt.value;
  5.     if(div.textContent) {
  6.         return div.textContent.length;
  7.     } else {
  8.        return div.innerText.length;
  9.     }
  10. }

Aquí hay un ejemplo para que la veas en funcionamiento: http://jsfiddle.net/wWMU9/6/

Básicamente esta función toma el contenido del textarea enriquecido (suponiendo que genere HTML válido).

Creo un nuevo elemento del DOM, al cual le inserto como su HTML interior el contenido del textarea.

Finalmente a este nuevo elemento le pido me devuelva la cantidad de caracteres de su "texto" interior, entonces en lugar de contar la cantidad de caracteres que ocupan las etiquetas del texto enriquecido, solo cuento el contenido.

Aclaración, el IF es simplemente para evitar que no funcione en algunas versiones de IE que no poseen la propiedad textContent
  #3 (permalink)  
Antiguo 29/01/2013, 15:21
 
Fecha de Ingreso: diciembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: contar caracteres textarea con editor de texto

Muchas gracias!!!! Voy a probarlo y ya te digo
  #4 (permalink)  
Antiguo 01/02/2013, 05:16
 
Fecha de Ingreso: diciembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: contar caracteres textarea con editor de texto

Hola ruygen.
Estoy intentando que funcione y no lo logro, debo de tener un error muy sencillo, pero no lo veo, apenas estoy comenzando con javascript.

aqui te pongo todo el codigo, es un formulario super normal, solo para ver que funciona para pasarlo a mi textarea.

<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Pruebas de contar textarea</title>
<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.0.0.min.js"></script>

<style type="text/css">
#editor {
margin:5em;
width:200px;
height:115px;
z-index:1;
}
</style>
</head>

<body>
<script language="JavaScript" type="text/javascript">
function contarCaracteresDelTexto () {
var txt = document.getElementById('editor');
var div = document.createElement('div');
div.innerHTML = txt.value;
if(div.textContent) {
return div.textContent.length;
} else {
return div.innerText.length;
}
}

$("#editor").blur(function(){alert(Hola /*contarCaracteresDelTexto()*/)});
</script>
<form name="form" action="editiho.php" method="post" enctype="multipart/form-data">
<div id="editor">
<textarea id="editor"></textarea>
</div>
</form>

</body>
</html>


Puedes ayudarme.

Gracias!!!!!
  #5 (permalink)  
Antiguo 01/02/2013, 12:01
 
Fecha de Ingreso: diciembre-2011
Mensajes: 14
Antigüedad: 12 años, 4 meses
Puntos: 0
Respuesta: contar caracteres textarea con editor de texto

Solucionado me faltaba un ; aqui va el codigo completo.
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>Contar caracteres textarea</title>
<script src="http://code.jquery.com/jquery-1.9.0.min.js"></script>
<script src="http://code.jquery.com/jquery-migrate-1.0.0.min.js"></script>
</head>

<body>
<form name="form2" action="editiho.php" method="post" enctype="multipart/form-data">
<textarea id="editor"></textarea>
</form>
<script language="JavaScript" type="text/javascript">
function contarCaracteresDelTexto () {
var txt = document.getElementById('editor');
var div = document.createElement('div');
div.innerHTML = txt.value;
if(div.textContent) {
return div.textContent.length;
} else {
return div.innerText.length;
}
}

$('#editor').blur(function()
{alert(contarCaracteresDelTexto());
})
</script>
</body>
</html>

Millones de gracias!!!

Etiquetas: caracteres, textarea
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:27.