Foros del Web » Programando para Internet » Javascript »

ayuda contador de caracteres

Estas en el tema de ayuda contador de caracteres en el foro de Javascript en Foros del Web. hola a todos. es la primera vez que vengo por este subforo de javascripts. a ver, os cuento mi problemilla. tengo un formulario y en ...
  #1 (permalink)  
Antiguo 04/09/2006, 08:08
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
ayuda contador de caracteres

hola a todos. es la primera vez que vengo por este subforo de javascripts. a ver, os cuento mi problemilla.
tengo un formulario y en uno de los apartados, llamado "memoria", que contiene un textarea, tengo a la vez un contador de caracteres para comprobar cuantos caracteres se escriben. esto lo hago con esta función:

function DescriptionCharCount() {
document.NuevaMemoria.countcharacters.value = document.NuevaNoticia.texto.value.length;
}

y luego, en el textarea, pongo lo siguiente:

<textarea name="memoria" cols="80" rows="8" onKeyDown="DescriptionCharCount();" onKeyUp="DescriptionCharCount();"></textarea>
para luego, finalmente, poner un apartado donde van apareciendo el número de caracteres que vas escribiendo:

Contador de Caracteres:
<input class="text4" size="5" value="0" name="countcharacters" size="15">

Bien. El tema es que a mí me gustaría que al escribir más de 500 caracteres, al pulsar el botón enviar del formulario, apareciera un mensaje en el que se advirtiera de que se han escrito más de 500 caracteres y no es posible enviar el formulario. cómo lo hago? gracias por todo.

una que sabe que no le defraudaréis.
  #2 (permalink)  
Antiguo 04/09/2006, 08:55
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Hola:

En el tag form:

<form onsubmit="return validar(this)" ...>

Y la función validar (en el head de la página):
function validar(f) {
valida = (f["memoria"].value.length <= 500);
if (!valida) alert("se ha pasado de 500 caracteres";);
return valida;
}

Pruébalo y nos cuentas...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #3 (permalink)  
Antiguo 04/09/2006, 08:56
Avatar de rock_blues.NET  
Fecha de Ingreso: septiembre-2005
Mensajes: 207
Antigüedad: 18 años, 7 meses
Puntos: 0
esto te puede servir

http://www.forosdelweb.com/showthrea...dor+caracteres

saludos
  #4 (permalink)  
Antiguo 04/09/2006, 09:31
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
Pregunta

hola a todos. gracias por vuestras respuestas. una ya no sabe que hacer. a ver, yo ya tengo un script que me controla que los campos del formulario no estén vacios. el script es este:
///////////////////////////////////////////////
function Chequear () {

var errorMsg = "";

//Comprobamos que el campo Nombre está completado
if (document.NuevaMemoria.nombre.value==""){
errorMsg += "\n\tNombre:\t - Debe introducir el Nombre de la Memoria";

}


//Comprobamos que el campo Artículo está completado
if (document.NuevaMemoria.texto.value==""){
errorMsg += "\n\tArtículo:\t - Debe introducir el Texto de la Memoria";

}


//Mostramos la ventana de error si existieran problemas
if (errorMsg != ""){
msg = "_________________________________________________ ___________________\n\n";
msg += "La Nueva Memoria no ha podido ser dada de Alta porque se han detectado los siguientes errores\n";
msg += "Por favor, corríjalos y reenvíe dicha información.\n";
msg += "_________________________________________________ ___________________\n\n";
msg += "Los siguientes errores deben ser corregidos: \n";

errorMsg += alert(msg + errorMsg + "\n\n");
return false;
}

return true;
}
////////////////////////////////////////////////
bien. yo lo que quería era implementar esa función del exceso de contador de caracteres aquí en esta con un nuevo if. yo había probado lo siguiente:
//////////////////////////////////////////////
if (document.NuevaMemoria.countcharacters.value.lengh <= 500){
errorMsg += "\n\tArtículo:\t - Ha sobrepasado los 500 caracteres";

}
///////////////////////////////////////////
el problema es que en este caso, tenga los caracteres que tenga, siempre me da el aviso de que Ha sobrepasado los 500 caracteres, aun cuando tenga sólo 3 caracteres escritos. hay algo mal pero estoy bloqueada y no doy con ello. la cuestión es que se permita como mucho 500 caracteres.
veis el error vosotros? gracias de antemano
  #5 (permalink)  
Antiguo 04/09/2006, 09:36
Avatar de caricatos
Moderador
 
Fecha de Ingreso: abril-2002
Ubicación: Torremolinos (Málaga)
Mensajes: 19.607
Antigüedad: 22 años
Puntos: 1284
Cita:
Iniciado por LadyArwen Ver Mensaje
hola a todos. gracias por vuestras respuestas. una ya no sabe que hacer. a ver, yo ya tengo un script que me controla que los campos del formulario no estén vacios. el script es este:
///////////////////////////////////////////////
function Chequear () {

var errorMsg = "";

//Comprobamos que el campo Nombre está completado
if (document.NuevaMemoria.nombre.value==""){
errorMsg += "\n\tNombre:\t - Debe introducir el Nombre de la Memoria";

}


//Comprobamos que el campo Artículo está completado
if (document.NuevaMemoria.texto.value==""){
errorMsg += "\n\tArtículo:\t - Debe introducir el Texto de la Memoria";

}


//Mostramos la ventana de error si existieran problemas
if (errorMsg != ""){
msg = "_________________________________________________ ___________________\n\n";
msg += "La Nueva Memoria no ha podido ser dada de Alta porque se han detectado los siguientes errores\n";
msg += "Por favor, corríjalos y reenvíe dicha información.\n";
msg += "_________________________________________________ ___________________\n\n";
msg += "Los siguientes errores deben ser corregidos: \n";

errorMsg += alert(msg + errorMsg + "\n\n");
return false;
}

return true;
}
////////////////////////////////////////////////
bien. yo lo que quería era implementar esa función del exceso de contador de caracteres aquí en esta con un nuevo if. yo había probado lo siguiente:
//////////////////////////////////////////////
if (document.NuevaMemoria.countcharacters.value.lengh <= 500){
errorMsg += "\n\tArtículo:\t - Ha sobrepasado los 500 caracteres";

}
///////////////////////////////////////////
el problema es que en este caso, tenga los caracteres que tenga, siempre me da el aviso de que Ha sobrepasado los 500 caracteres, aun cuando tenga sólo 3 caracteres escritos. hay algo mal pero estoy bloqueada y no doy con ello. la cuestión es que se permita como mucho 500 caracteres.
veis el error vosotros? gracias de antemano
¡Has visto el código!...

Saludos
__________________
Por favor:
No hagan preguntas de temas de foros en mensajes privados... no las respondo
  #6 (permalink)  
Antiguo 04/09/2006, 09:52
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
sí que he visto tú código, pero no me va. con respecto al que yo te envío, cuál es el error?
  #7 (permalink)  
Antiguo 04/09/2006, 09:58
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Yo uso éste para contar y a la vez no permitir q escriban más de la cuenta

Código HTML:
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else 
countfield.value = maxlimit - field.value.length;
}

<!--Ejemplo con textarea//-->
Quedan <input readonly type="text" name="remLen" size="3" maxlength="3" value="250"> caracteres.<br>
<textarea name="descripcion" cols="70" rows="5" id="descripcion" onKeyDown="textCounter(this.form.descripcion,this.form.remLen,250);"
  onKeyUp="textCounter(this.form.descripcion,this.form.remLen,250);"><textarea> 
Sobre tu codigo te falta una "t":

if (document.NuevaMemoria.countcharacters.value.lenght <= 500){

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #8 (permalink)  
Antiguo 04/09/2006, 10:29
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
no, me temo que sigue sin irme. además, yo necesito implementarlo con el otro script que tengo como os he comentado. respecto a que me falta una t, qué es esa t? creo que te equivocas. pero bueno, sigo sin saber como implementarlo en mi script. alguna idea, por favor?
  #9 (permalink)  
Antiguo 04/09/2006, 10:34
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
La palabra lenght termina en t y la tienes sin "t" en el codigo mostrado y supongo q si has hexo un copiar pegar de tu codigo te seguira faltando, ejem. A eso me refería.

Luego si el formulario se llama "NuevaMemoria" y el campo q quieres q okupe menos de 500 caracteres se llama "countcharacters" el código no es correcto xq la comparación es >= para saber q sobrepasa y no <= como tienes puesto.

Saludos.
__________________
La muerte es un camino que todos debemos recorrer...
  #10 (permalink)  
Antiguo 04/09/2006, 11:31
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
pues no te lo vas a creer, pero sigue sin ir: meto lo siguiente:

function Chequear () {

var errorMsg = "";


if (document.NuevaMemoria.countcharacters.value.lengt h >= 500){
errorMsg += "\n\tMemoria:\t - Ha sobrepasado los 500 caracteres";

}
//Mostramos la ventana de error si existieran problemas
if (errorMsg != ""){
msg = "_________________________________________________ ___________________\n\n";
msg += "La Nueva Noticia no ha podido ser dada de Alta porque se han detectado los siguientes errores\n";
msg += "Por favor, corríjalos y reenvíe dicha información.\n";
msg += "_________________________________________________ ___________________\n\n";
msg += "Los siguientes errores deben ser corregidos: \n";

errorMsg += alert(msg + errorMsg + "\n\n");
return false;
}

return true;
}
// -->
</script>

///////////////////
el campo que me cuenta los caracteres en el formulario inicial es este:
<TD align="right">Contador de Caracteres:</TD>
<TD><input size="5" value="0" name="countcharacters" size="15"></TD>
//////////////////
y nada de nada, no me va.
  #11 (permalink)  
Antiguo 04/09/2006, 11:39
Avatar de djreficul  
Fecha de Ingreso: julio-2006
Ubicación: Cork
Mensajes: 672
Antigüedad: 17 años, 10 meses
Puntos: 0
Perdona, pero cuando lo puse en rojo no sé por qué aparece un espacio en blanco q no debería aparecer, lo correcto es length.

Lo q kiero saber es si el campo countcharacters es en el q escribes el texto largo o si almacenas ahí el número de caracteres introducidos en otro campo...

En el primer caso entonces esta bien lo de

if (document.NuevaMemoria.countcharacters.value.lengt h >= 500){

pero en el segundo entonces te sobraria el length

if (document.NuevaMemoria.countcharacters.value >= 500){


Espero no estar perdiendo el norte, jajaja.

Saludos.

P.D.: Me rindo... xq demonios sale ese espacio en blanco y al darle a editar no está?
__________________
La muerte es un camino que todos debemos recorrer...
  #12 (permalink)  
Antiguo 04/09/2006, 14:05
 
Fecha de Ingreso: agosto-2006
Mensajes: 91
Antigüedad: 17 años, 8 meses
Puntos: 0
gracias a todos. por fin lo he conseguido. os podéis creer que era esto último, que le sobraba el length, pero claro, estaba tan bloqueada, que ya no veía nada por muy obvio que fuera... gracias a todos por vuestra ayuda, que haría sin vosotros...
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 08:40.