Foros del Web » Programando para Internet » Javascript »

Textarea con dato obligatorio

Estas en el tema de Textarea con dato obligatorio en el foro de Javascript en Foros del Web. Hola a todos/as... A ver si me podeis echar una mano, pues no sé donde está el error (no estoy muy puesto en javascript). Se ...
  #1 (permalink)  
Antiguo 19/04/2006, 02:22
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 5 meses
Puntos: 144
Textarea con dato obligatorio

Hola a todos/as...

A ver si me podeis echar una mano, pues no sé donde está el error (no estoy muy puesto en javascript). Se trata de lo siguiente:

Tengo un textarea, donde obligatoriamente, un usuario debe introducir un texto. Si ese textarea está vacío, al enviar el form, le aparece una alerta indicándole que debe rellenarlo. Hasta ahí, todo facilito. El problema es que si un usuario introduce un texto (el que sea), y a continuación pulsa intro para dejar una línea (o más) en blanco, al enviar el formulario, vuelve a saltar la alerta indicándole que debe rellenar el campo (evidentemente el textarea está rellenado, pero tiene intros al final).

El código que utilizo (resumido, pues hay más validaciones), es el siguiente. En un archivo ".js" tengo esto:

Código:
<!--
//Validador de formulario
function validacion(formulario) {
var validarComentario = /(.)$/  //no admite espacios vacíos
//Comprueba el campo del comentario
if(!validarComentario.test(formulario.comentario.value)) {
alert('Introduce el comentario.')
return false
}
return true
}
//-->
Y en el form, tengo esto:
Código:
onsubmit="return validacion(this)"
Si alguen me dijera como solucionar el problema, se lo agradecería.

Salu2
  #2 (permalink)  
Antiguo 19/04/2006, 09:01
Avatar de Holden  
Fecha de Ingreso: enero-2002
Ubicación: Buenos Aires
Mensajes: 326
Antigüedad: 22 años, 3 meses
Puntos: 4
Hola creo que tal vez te sea util la clase para validar campos.
Pegale una mirada:
http://www.hvaldez.com.ar/blogs/

Saludos
__________________
Holden-@r
http://www.hvaldez.com.ar
  #3 (permalink)  
Antiguo 19/04/2006, 09:58
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 5 meses
Puntos: 144
Gracias Holden, ...pero ¿no se podría adaptar mi código con algún ligero cambio?.
  #4 (permalink)  
Antiguo 19/04/2006, 10:28
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Mu güenas don 3pies

No entiendo muy bien lo que quieres lograr... sólo que no esté vacío o no quieres que hayan saltos de línea o no quieres que hayan espacios o qué?
  #5 (permalink)  
Antiguo 19/04/2006, 10:47
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 5 meses
Puntos: 144
Gracias tunait

Bueno, lo que pretendo es que cuando alguien escribe un comentario, que lo haga, y que si le da por pulsar intro al finalizar el comentario (porque se le ha ido la olla, porque se cree que dándole al enter envía el form, etc), que el formulario no me haga saltar el alert (salta al enviar con su botoncillo correspondiente, el formulario).

Es decir, si en ese campo de tipo textarea, alguien escribe algo, y al final del mismo (dentro del propio textarea) pulsa una o varias veces la tecla enter, cuando le da al botón de enviar el formulario, al validarse, me salta la "joía" alerta indicándome que debo introducir un comentario. ¡¡¡Cohone!!!, pero si ya hay un txt en el maldito campo.

Evidentemente el error está aquí (¿expresiones regularees se llaman?):
Código:
var validarComentario = /(.)$/  //no admite espacios vacíos
Gracias por tu paciencia.
  #6 (permalink)  
Antiguo 19/04/2006, 10:56
Avatar de tunait
Moderadora
 
Fecha de Ingreso: agosto-2001
Ubicación: Terok Nor
Mensajes: 16.805
Antigüedad: 22 años, 8 meses
Puntos: 381
Hum ... pero si no admite espacios vacíos vaatenerqueescribirlotodocomosinotuvierabarraespac iadora ¿no?

La idea es que ponga algo, aunque sea "pepe" ¿no?

Si es así no hace falta que uses las RegExp, basta con que le verifiques que que el value no sea == "" (vacío)

Código:
<!--
//Validador de formulario
function validacion(formulario) {
if(formulario.validarComentario.value =="")) {
alert('Introduce el comentario.')
return false
}
return true
}
//-->
claro que con eso podrá enviarlo con un espacio, o una sola letra. Tal puedas hacer como aquí en los forosdelgué que no deja enviar un mensaje si no tiene un mínimo de caracteres

formulario.validarComentario.value.length < 10

Dime si van por ahí los tiros
  #7 (permalink)  
Antiguo 19/04/2006, 11:11
Avatar de 3pies
Colaborador
 
Fecha de Ingreso: diciembre-2003
Ubicación: Desde una destilería
Mensajes: 2.584
Antigüedad: 20 años, 5 meses
Puntos: 144
Joer, siempre valido con expresiones regulares (o lo intento), y a veces el hecho de ir a piñón fijo con una idea en mente, hace que me complique más de la cuenta.

Por cierto, mi ejemplo no admite espacios vacíos (0 caracteres), pero sí espacios entre palabras, vamosquenoestoyobligadoaescribirasí

Miles de gracias Tunait, por esa labor, casi, casi, casi apostólica (iba a decir misionera, aunque no lo veía apropiado, jajajajaja) que has elegido en FdW, de enseñar al que no sabe.
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 15:37.