Foros del Web » Programando para Internet » Javascript »

Funcionalidades en mi formulario

Estas en el tema de Funcionalidades en mi formulario en el foro de Javascript en Foros del Web. Hola, lo que necesito es lo siguiente: Tengo un formulario para agregar notas, este muestra la cantidad de alumnos que tiene un curso y textbox ...
  #1 (permalink)  
Antiguo 16/04/2012, 10:20
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 2 meses
Puntos: 4
Funcionalidades en mi formulario

Hola, lo que necesito es lo siguiente:

Tengo un formulario para agregar notas, este muestra la cantidad de alumnos que tiene un curso y textbox para agregar las diferentes notas de acuerdo a la asignatura. El tema que con un while el formulario me queda como un excel (ya que son varios alumnos por curso) y me gustaria que la insercion de datos sea igual de facil por lo que necesito ideas para:

1)Necesito que al agregar una nota y al presionar enter no me presione en boton agregar, sino que baje al textbox que tiene abajo (asi como el tabulador lo hace hacia al lado), el boton agregar se debe activar solamente cuando se presione.

2)Al agregar las notas doy un "alert" (javascript) y envio con "windows.location"(javascript) al inicio de la gestion con notas, pero cuando sale el alert todos los cambios que hice en el formulario se borran y queda como al principio, despues me redirecciona y cuando veo de nuevo el formulario estan agregado los datos, quiero evitar que el usuario vea eso (como que todo lo agregado se borra) por que lo puede confundir, existe alguna forma??

Gracias
  #2 (permalink)  
Antiguo 16/04/2012, 14:25
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 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
  #3 (permalink)  
Antiguo 17/04/2012, 06:07
 
Fecha de Ingreso: febrero-2011
Mensajes: 108
Antigüedad: 13 años, 2 meses
Puntos: 4
Respuesta: Funcionalidades en mi formulario

Gracias!! tal cual tu dices estudiare evento y DOM, muy buena la informacion justo lo que necesitaba!
  #4 (permalink)  
Antiguo 18/04/2012, 10:38
Avatar de Raziel_Ravenheart  
Fecha de Ingreso: agosto-2011
Ubicación: Ibagué, Tolima
Mensajes: 192
Antigüedad: 12 años, 8 meses
Puntos: 37
Respuesta: Funcionalidades en mi formulario

Me faltó explicarte la función del botón para enviar los datos, y es solamente definir la función que se le asigno en la línea 4 del código javascript, o sea esta:

Código Javascript:
Ver original
  1. document.forms['f'].enviar.onclick = enviarDatos;

la función iría de la siguiente manera:

Código Javascript:
Ver original
  1. function enviarDatos () {
  2.   document.forms['f'].submit();
  3. }

Eso sería todo.

Exitos y cualquier otra duda sobre DOM o eventos, no dudes dejarla en el foro de Javascript

Etiquetas: formulario, usuarios
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 13:47.