Foros del Web » Programando para Internet » Javascript »

Ayuda - Validación de Formulario con JavaScript

Estas en el tema de Ayuda - Validación de Formulario con JavaScript en el foro de Javascript en Foros del Web. Bueno, el tema es el siguiente: Tengo un formulario de contacto donde los textos aparecen por defecto dentro de los textfields ("Nombre", "E-mail", "Asunto", etc.). ...
  #1 (permalink)  
Antiguo 13/10/2009, 20:12
 
Fecha de Ingreso: octubre-2008
Ubicación: Bs. As., ARG
Mensajes: 203
Antigüedad: 15 años, 7 meses
Puntos: 6
Ayuda - Validación de Formulario con JavaScript

Bueno, el tema es el siguiente: Tengo un formulario de contacto donde los textos aparecen por defecto dentro de los textfields ("Nombre", "E-mail", "Asunto", etc.). El codigo de dicho formulario es el siguiente:

<form action="" method="post" enctype="application/x-www-form-urlencoded" name="frm" onsubmit="return validarFrm()">
<input name="nombre" type="text1" value="Nombre" onfocus="javascript:if(this.value=='Nombre'){this. value='';}" onblur="javascript:if(this.value==''){this.value=' Nombre';}" />
<input name="e-mail" type="text2" value="E-mail" onfocus="javascript:if(this.value=='E-mail'){this.value='';}" onblur="javascript:if(this.value==''){this.value=' E-mail';}"/>
<input name="asunto" type="text3" value="Asunto" onfocus="javascript:if(this.value=='Asunto'){this. value='';}" onblur="javascript:if(this.value==''){this.value=' Asunto';}"/>
<textarea id="Mensaje" name="mensaje" onfocus="javascript:if(this.value=='Mensaje'){this .value='';}" onblur="javascript:if(this.value==''){this.value=' Mensaje';}">Mensaje</textarea>
<input name="button" type="submit" id="button" value="ENVIAR"/>
</form>

El tema es que quiero que se realize una validacion de los campos del formulario, al menos para que no me lleguen los value por defecto. Aplique el siguiente codigo en la cabecera para validar:

<script type="text/javascript">
function validarFrm() {
if(!document.frm['nombre'].value) { document.frm['nombre'].focus(); alert('El campo "Nombre" es obligatorio.'); }
else if(!document.frm['e-mail'].value) { document.frm['e-mail'].focus(); alert('El campo "E-mail" es obligatorio.'); }
else if(!document.frm['asunto'].value) { document.frm['asunto'].focus(); alert('El campo "Asunto" es obligatorio.'); }
else if(!document.frm['mensaje'].value) { document.frm['mensaje'].focus(); alert('El campo "Mensaje" es obligatorio.'); }
else { document.frm.submit(); }
return false;
}
</script>

Bueno, finalmente el tema esta en que dicha validacion funciona pero para campos vacios (.focus()) y no se como adaptarlo para que revote el envio por defecto de los value del form ("Nombre", "E-mail", etc.).
Desconozco Javascript y ya probe mucho sin tener exito, asi que les agradeceria cualquier ayuda...(creo que la solucion esta en modificar el JavaScript de la validacion, rechazando el envio del form con los value por defecto tanto en focus como en blur...
  #2 (permalink)  
Antiguo 14/10/2009, 06:50
Avatar de maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 15 años, 9 meses
Puntos: 1532
Respuesta: Ayuda - Validación de Formulario con JavaScript

colocalo en el onsubmit del form:

<form onsubmit="return validarFrm();" ...>
  #3 (permalink)  
Antiguo 14/10/2009, 07:02
 
Fecha de Ingreso: mayo-2009
Mensajes: 201
Antigüedad: 15 años
Puntos: 9
Respuesta: Ayuda - Validación de Formulario con JavaScript

entiendo que dentro del campo nombre por defecto viene nombre, y quieres que eso tambien te lo invalide no?
eso seria asi:

if((!document.frm['nombre'].value)||((document.frm['nombre'].value)=="Nombre")) { document.frm['nombre'].focus(); alert('El campo "Nombre" es obligatorio.'); }

y asi con todos.
  #4 (permalink)  
Antiguo 14/10/2009, 08:42
 
Fecha de Ingreso: octubre-2008
Ubicación: Bs. As., ARG
Mensajes: 203
Antigüedad: 15 años, 7 meses
Puntos: 6
Respuesta: Ayuda - Validación de Formulario con JavaScript

Cita:
Iniciado por monxas Ver Mensaje
if((!document.frm['nombre'].value)||((document.frm['nombre'].value)=="Nombre")) { document.frm['nombre'].focus(); alert('El campo "Nombre" es obligatorio.'); }
Mil gracias Monxas, tu código funcionó a la perfección...saludos!
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 19:37.