Pregunta: | 24629 - EVITAR ENVíO DATOS DE FORMULARIO |
Autor: | Eugenio Cardoso Mena |
Tengo un formulario, que se envía por e-mail, con una caja de texto que quiero limitar a un máximo de 1000 caracteres. Quiero evitar que el usuario teclee más de esos 1000 caracteres, o bién, si teclea más evitar que el formulario se envíe.
Gracias por anticipado. |
Respuesta: | Rodrigo Espinoza |
con la solucion que das... Que pasa si le borras caracteres??
decrementas el contador? una solucion sencilla y mas segura seria especificarle a la caja de texto la propiedad maxlength="1000" y asi evitas que sobrepase el limite de entrada. Saludos! |
Respuesta: | Eugenio Cardoso Mena |
He encontrado una posible solución a mi pregunta. Tras hacerlo me he dado cuenta que era bastante sencillo. No obstante ahí va por si puede servirle a alguien. No se si funciona con NESCAPE.
/* ************************ La página .htm debe constar de un formulario (que aquí se llamaa "formulario") con una caja de texto (que aquí se llama "S1") de varias filas para teclear el texto a enviar. También debe tener otra caja de texto (que aquí se llama "T1") de una sola fila que contendrá el nº de caracteres tecleados. Y por último tendrá el botón para enviar el formulario. Entre las etiquetas <textarea> y </textarea> se debe poner la llamada a esta función de la forma siguiente: onkeypress="contar();" ************************* */ var limite=9 //poner 1 menos de los deseados function contar() { /* ************************************** Si te pasas del limite de caracteres avisar y dejar la caja de texto con el nº de caracteres deseados aunque se sigan tecleando más ya que se substrae la cadena correspondiente al limite de caracteres y se aplica a la caja de texto. ************************************** */ if(this.formulario.S1.value.length>limite) { alert("Ya has tecleado más de "+(limite+1)+" caracteres") this.formulario.S1.value=(this.formulario.S1.value).substring(0,limite); } /* *************************************** Si no te has pasado de los caracteres sumar 1 para avisar en otra caja de texto más pequeña del nº de caracteres que se llevan tecleados. **************************************** */ else { this.formulario.T1.value=this.formulario.S1.value.length+1 } } |