Foros del Web » Programando para Internet » Javascript »

sencillo pero ¿porque no me funciona?

Estas en el tema de sencillo pero ¿porque no me funciona? en el foro de Javascript en Foros del Web. Buenas, A ver si alguien puede indicarme porque el siguiente código no me funciona, lo que se pretende que al cargar cualquier pagina que contenga ...
  #1 (permalink)  
Antiguo 10/11/2011, 22:50
 
Fecha de Ingreso: septiembre-2011
Mensajes: 73
Antigüedad: 12 años, 7 meses
Puntos: 0
Sonrisa sencillo pero ¿porque no me funciona?

Buenas,
A ver si alguien puede indicarme porque el siguiente código no me funciona, lo que se pretende que al cargar cualquier pagina que contenga un formulario el foco sea el primer campo del primer formulario (exceptuando si es un hidden)

<html>
<head>
<title>test</title>

<script type="text/javascript">

if(document.forms.length > 0) {
for(var i=0; i < document.forms[0].elements.length; i++) {
var campo = document.forms[0].elements[i];
if(campo.type != "hidden") {
campo.focus();
break;
}
}
}

</script>
</head>
<body>

<form action="uno.html" method="post">

Este es el campo nº1:<input type="text" name="campo1"/>
Este es el campo nº2:<input type="text" name="contra"/>
<input type="submit" value="Enviar" name="submit"/>

</form>
</body>
</html>

*** Otra duda es que en cualquier form con varios campos y un boton submit, y si el usuario cumplimentando el primer campo pincha en Enter se hace el envio del formulario ¿hay alguna forma de evitarlo?

...bueno pues gracias a quien pueda contestar
  #2 (permalink)  
Antiguo 10/11/2011, 23:08
 
Fecha de Ingreso: septiembre-2011
Mensajes: 73
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: sencillo pero ¿porque no me funciona?

al segundo punto de mi pregunta le he encontrado la siguiente solución:

function stopRKey(evt) {
var evt = (evt) ? evt : ((event) ? event : null);
var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
if ((evt.keyCode == 13) && (node.type=="text")) {return false;}
}
document.onkeypress = stopRKey;

Si alguien le ve algún inconveniente a esta función que la comente.
  #3 (permalink)  
Antiguo 11/11/2011, 05:53
 
Fecha de Ingreso: mayo-2011
Ubicación: Zaragoza
Mensajes: 58
Antigüedad: 12 años, 11 meses
Puntos: 5
Respuesta: sencillo pero ¿porque no me funciona?

He probado tu codigo aqui [URL="http://jsfiddle.net/LnucU/"]http://jsfiddle.net/LnucU/[/URL] y en principio no da ningun problema lo unico puede ser que el codigo se ejecuta antes de que se carge el documento entero y por eso funciona. Prueba colocarlo en algun sitio en donde se ejecute despues de que se cargue el documento o por lo menos las etiquetas que estas usando.

Un saludo.
  #4 (permalink)  
Antiguo 11/11/2011, 06:30
Avatar de Rappa  
Fecha de Ingreso: noviembre-2011
Ubicación: Montevideo, Uruguay
Mensajes: 80
Antigüedad: 12 años, 5 meses
Puntos: 13
Respuesta: sencillo pero ¿porque no me funciona?

Tienes que hacer una funcion con el código y ejecutarla en el body onLoad

Código Javascript:
Ver original
  1. function MiFuncion(){
  2.    if(document.forms.length > 0) {
  3.       for(var i=0; i < document.forms[0].elements.length; i++) {
  4.          var campo = document.forms[0].elements[i];
  5.          if(campo.type != "hidden") {
  6.             campo.focus();
  7.             break;
  8.          }
  9.       }
  10.    }
  11. }

y en el body:

Código HTML:
Ver original
  1. <body onLoad="MiFuncion();>"
__________________
Drugs and alcohol are not the answer
Unless you are asking what i'm doing this weekend
  #5 (permalink)  
Antiguo 14/11/2011, 22:39
 
Fecha de Ingreso: septiembre-2011
Mensajes: 73
Antigüedad: 12 años, 7 meses
Puntos: 0
Respuesta: sencillo pero ¿porque no me funciona?

Gracias, me has sido de ayuda, te envío karma

Etiquetas: formulario, funcion, html, input, sencillo, botones
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 12:41.