Foros del Web » Programando para Internet » Javascript »

volver al principio de la pagina en formulario incorrectamente completados

Estas en el tema de volver al principio de la pagina en formulario incorrectamente completados en el foro de Javascript en Foros del Web. Hola a todos Necesito ayuda en lo que creo puede ser una tonteria pero que no logro resolver Coji esta rutina de javascript en este ...
  #1 (permalink)  
Antiguo 23/02/2006, 13:02
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
volver al principio de la pagina en formulario incorrectamente completados

Hola a todos
Necesito ayuda en lo que creo puede ser una tonteria pero que no logro resolver
Coji esta rutina de javascript en este foro y me funciona perfecta, pero me gustaria que cuando uno de los campos no es rellenado correctamente, se volviera al principio de la pagina (mi formulario es algo largo y quedaria mucho mejor y mas claro) Se puede hacer=?
Gracias a todos

Código PHP:
<?php BEGIN__VBULLETIN__CODE__SNIPPET <html
<
head
<
style
form,td{font:normal 10px/10px verdana;} 
input{font:normal 10px/10px verdana;border:solid 1px black
</
style
    <
title>Prueba</title
    <
script
//Script original de KarlanKas para forosdelweb.com 
//Adaptado a firefox gracias a JavierB ;-) 

    
colorMal="#eeddee"
    
colorBien="white"
     
    
regla=new Array() 

    
regla[0]="valor.length<3"
    
regla[1]="isNaN(valor) || valor<600000000"
    
regla[2]="valor.lastIndexOf('@')!=valor.indexOf('@') || valor.indexOf('@')<2 || valor.lastIndexOf('.')<valor.length-4 || valor.lastIndexOf('.')>valor.length-3"

    
mensaje=new Array() 


    
mensaje[0]="Por favor, introduzca el nombre"
    
mensaje[1]="El número de teléfono introducido no es válido"
    
mensaje[2]="correo inválido"
     
    function 
comprobar(){  
    
errores="";  
    
mensaje2=""
    for(
a=0;a<regla.length;a++){  
    
valor=document.forms[0].elements[a].value;  
    if(eval(
regla[a])){ 
    
mensaje2=(mensaje[a])?mensaje[a]:"Por favor, rellene el campo "+document.forms[0].elements[a].name
    
errores+=mensaje2+"<br>";  
    
document.forms[0].elements[a].style.background=colorMal;}  
    else{
document.forms[0].elements[a].style.background=colorBien;}  
    }  
    
pepe=document.getElementById("herror"); 
    
pepe.style.background=(errores!="")?colorMal:colorBien;  
    
pepe.style.border=(errores!="")?"solid 1px black":"none";  
    
pepe.innerHTML=errores;  

    return (
errores==""
    }  
      
     
    
</script> 
</head> 

<body> 
<form onsubmit="return comprobar()"> 
<table><tr><td>nombre:</td><td><input type=text name=nombre></td><td style="font:normal 10px/15px verdana;padding:5px 5px 5px 5px;"rowspan=10 valign="top" id="herror"></td></tr> 
<tr><td>telefono:</td><td><input type=text name="telefono"></td></tr> 
<tr><td>e-mail:</td><td><input type=text name="email"></td></tr> 
<tr><td colspan=2 align="center"><input type="submit" value="enviar"></td></tr></table> 

</form> 


</body> 
</html>
  #2 (permalink)  
Antiguo 23/02/2006, 13:17
Avatar de axy108  
Fecha de Ingreso: diciembre-2003
Ubicación: En frente de mi Computadora
Mensajes: 415
Antigüedad: 20 años, 4 meses
Puntos: 0
//////// Agregando esta linea deberia de funcionar

document.forms[0].elements[a].focus();

///////////



agregala despues de esta linea

mensaje2=(mensaje[a])?mensaje[a]:"Por favor, rellene el campo "+document.forms[0].elements[a].name;

te al pongo en el cosigo para que veas:


Código PHP:
<?php BEGIN__VBULLETIN__CODE__SNIPPET <html
<
head
<
style
form,td{font:normal 10px/10px verdana;} 
input{font:normal 10px/10px verdana;border:solid 1px black
</
style
    <
title>Prueba</title
    <
script
//Script original de KarlanKas para forosdelweb.com 
//Adaptado a firefox gracias a JavierB ;-) 

    
colorMal="#eeddee"
    
colorBien="white"
     
    
regla=new Array() 

    
regla[0]="valor.length<3"
    
regla[1]="isNaN(valor) || valor<600000000"
    
regla[2]="valor.lastIndexOf('@')!=valor.indexOf('@') || valor.indexOf('@')<2 || valor.lastIndexOf('.')<valor.length-4 || valor.lastIndexOf('.')>valor.length-3"

    
mensaje=new Array() 


    
mensaje[0]="Por favor, introduzca el nombre"
    
mensaje[1]="El número de teléfono introducido no es válido"
    
mensaje[2]="correo inválido"
     
    function 
comprobar(){  
    
errores="";  
    
mensaje2=""
    for(
a=0;a<regla.length;a++){  
    
valor=document.forms[0].elements[a].value;  
    if(eval(
regla[a])){ 
    
mensaje2=(mensaje[a])?mensaje[a]:"Por favor, rellene el campo "+document.forms[0].elements[a].name
////////

    
document.forms[0].elements[a].focus();

////////
    
errores+=mensaje2+"<br>";  
    
document.forms[0].elements[a].style.background=colorMal;}  
    else{
document.forms[0].elements[a].style.background=colorBien;}  
    }  
    
pepe=document.getElementById("herror"); 
    
pepe.style.background=(errores!="")?colorMal:colorBien;  
    
pepe.style.border=(errores!="")?"solid 1px black":"none";  
    
pepe.innerHTML=errores;  

    return (
errores==""
    }  
      
     
    
</script> 
</head> 

<body> 
<form onsubmit="return comprobar()"> 
<table><tr><td>nombre:</td><td><input type=text name=nombre></td><td style="font:normal 10px/15px verdana;padding:5px 5px 5px 5px;"rowspan=10 valign="top" id="herror"></td></tr> 
<tr><td>telefono:</td><td><input type=text name="telefono"></td></tr> 
<tr><td>e-mail:</td><td><input type=text name="email"></td></tr> 
<tr><td colspan=2 align="center"><input type="submit" value="enviar"></td></tr></table> 

</form> 


</body> 
</html>
Saludos
espero te sirva.

__________________
Todos somos muy ignorantes :pensando: . Lo que ocurre es que no todos ignoramos las mismas cosas ;-) .... Albert Einstein :cool:
  #3 (permalink)  
Antiguo 23/02/2006, 13:53
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
Gracias axy108 por tu respuesta pero no es lo que busco

Lo he probado y lo que hace es que pone el foco en el primer campo del formulario que esta imcompleto y es obligatorio,
Yo lo que busco es que si hay un campo sin completar o incorrecto vuelva al principio de la pagina es decir el mismo efecto que se consigue si aprietas la tecla "Inicio" del teclado.

De todos modos lo dicho gracias por contestar y... bueno si alguno tiene alguna solucion que conteste.

un saludo
  #4 (permalink)  
Antiguo 23/02/2006, 14:03
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
creo que se puede conseguir añadiendo un marcador en la parte de arriba de la pagina.

<a name="arriba"></a>


el problema es que desde un enlace es muy facil

<a href="#arriba">arriba</a>


Pero desde la funcion en javascript y condicionado a que se realize cuando no se completa un campo o hay alguno incorrecto no tendo ni idea.

AYUDAAAA !!!
  #5 (permalink)  
Antiguo 23/02/2006, 15:47
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
¿Es imposible? si asi decirmelo por favor.

Un saludo a todos.
  #6 (permalink)  
Antiguo 24/02/2006, 03:51
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Hola brainstorm

Utiliza esto:

window.scrollTo(0,0)

Saludos,
  #7 (permalink)  
Antiguo 26/02/2006, 05:57
 
Fecha de Ingreso: septiembre-2005
Ubicación: España
Mensajes: 78
Antigüedad: 18 años, 7 meses
Puntos: 0
Gracias a todos me fue perfecto
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 14:58.