Ver Mensaje Individual
  #2 (permalink)  
Antiguo 16/04/2012, 14:25
Avatar de Raziel_Ravenheart
Raziel_Ravenheart
 
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 13 años, 5 meses
Puntos: 37
Respuesta: Funcionalidades en mi formulario

Bueno básicamente estás en el foro equivocado, ya que todo lo que pides se hace con html y javascript, nada que ver con PHP

Para detectar cuando se oprime enter y que no se envie el formulario, debes omitir el botón type="submit" en el formulario, esto hará que cualquier enter que pulses, no quiera enviar el formulario.

es decir, si haces los siguiente

Código HTML:
Ver original
  1. <form name="f" action="algo.php" >
  2. <input type="text" name="dato1" />
  3. <input type="text" name="dato2" />
  4. <input type="button" name="enviar" value="Enviar Datos" />
  5. </form>

no tendrás problemas y en javascript puedes hacer lo siguiente:
Para detectar que se oprime enter en el campo de texto, y para que se envie el formulario cuando le des click al botón de enviar, pon lo siguiente:

Código Javascript:
Ver original
  1. window.onload = function () {
  2.   document.forms['f'].dato1.onkeypress = detectarTecla;
  3.   document.forms['f'].dato2.onkeypress = detectarTecla;
  4.   document.forms['f'].enviar.onclick = enviarDatos;
  5. }
  6.  
  7.  
  8. // Esta funcion se la puedes asignar a cualquier campo de texto
  9. function detectarTecla ( evt ) {
  10.   // Con la siguiente línea de código sabemos cual fue el campo al cual se le oprimio enter
  11.   // y queda una referencia de este guardada en la variable campo.
  12.   var campo = evt.target;
  13.   // si depues de lo anterior se hiciera: alert(campo.name); el código mostraria el valor del
  14.   // atributo name del campo al que se le dio enter, este caso: dato1, y dependiendo de este
  15.   // valor, se pueden ejecutar algunas acciones con un if, switch, o incluso algo más complicado
  16.   // dividiendo el valor para saber que campo es y ciclar al siguiente, con un substr o substring
  17.  
  18.   //Con esta línea de código, podemos saber cual tecla se oprimio, no funciona
  19.   // en internet explorer ya que IE trata diferente los eventos, como parte del objeto window
  20.   var tecla = evt.charCode;
  21.  
  22.   if (tecla == 13) {
  23.     // Aquí iria el código para que salte al próximo campo, sería algo complicado si fueran varios
  24.     // campos y tuvieras que ciclar entre estos, pero con este ejemplo solo tienes que hacer lo
  25.     // siguiente:
  26.  
  27.     document.forms['f'].dato2.focus()
  28.     // o también
  29.     document.forms['f']['dato2'].focus()
  30.     // ambas hacen lo mismo
  31.   }
  32. }

Tienes varias opciones dependiendo del tipo de cosas que quieras hacer, estudia mucho evento y DOM