Foros del Web » Programando para Internet » Javascript »

Limpiar formulario usando for

Estas en el tema de Limpiar formulario usando for en el foro de Javascript en Foros del Web. Hola chicos y Chicas: tengo una complicación que me suena fácil pero ya probe varias cositas y no sale, les cuento. Ten un formulario que ...
  #1 (permalink)  
Antiguo 27/08/2014, 11:55
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 8 meses
Puntos: 0
Limpiar formulario usando for

Hola chicos y Chicas: tengo una complicación que me suena fácil pero ya probe varias cositas y no sale, les cuento.

Ten un formulario que entre otros datos tienen que capturar una cifra x cada dia del mes, asi que con un solo cuadro de texto y un for genero mis 12 objetos para que capturen.

Hasta aquí toda va bien.

Me piden un botos para limpiar el formulario, con JavaScript, basta con poner

Código HTML:
FrmInd.txtNombre.value = "";
este me funciona muy bien para el resto de los campos y combos del formulario, pero para los 12 meses considere que con un ciclo.

Código HTML:
var PrefijoObj = "txtMetProg";

for(var i=1;i<=12;i++){      
    var res = PrefijoObj.concat(i);  // funcion concat para unir las cadenas   
    FrmInd.res.value = "";        
    }
Pero ya en la línea para hacerlo vacio, no lo reconoce, no hace nada.. tengo la idea que la cadena armada del nombre del objeto no lo reconoce como tal, y no se como solucionarlo.

SALUDOS
  #2 (permalink)  
Antiguo 27/08/2014, 12:43
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Limpiar formulario usando for

No sé tú, pero creo que sería más sencillo si usaras el método reset.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #3 (permalink)  
Antiguo 27/08/2014, 13:53
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Limpiar formulario usando for

Hola Alexis88:

De hecho esa era min intención, pero dentro del formulario en mención tengo varios combos relacionados y al querer usar el reset limpia los campos de texto, PERO NO LOS COMBOS.


Por eso decidi hacerlo con una función de script...

¿me puedes ayudar?

GRACIAS
  #4 (permalink)  
Antiguo 27/08/2014, 14:38
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Limpiar formulario usando for

¿Deseas que los combos se queden sin opciones y también dejar a las cajas vacía? Prueba así:

Código Javascript:
Ver original
  1. var form = document.querySelector("#id_formulario"),
  2.     elements = form.elements,
  3.     total = elements.length,
  4.     button = document.querySelector("#id_botón");
  5.  
  6. button.addEventListener("click", function(){
  7.     for (var i = 0; i < total; i++){
  8.         elements[i].value = "";    
  9.         elements[i].innerHTML = "";
  10.     }
  11. }, false);

Lo que hago es lo siguiente. Tomo por sus IDs tanto al formulario como al botón que activará la función de borrado, además, obtengo al conjunto de elementos del formulario y el total que estos representan. Cuando pulse el botón, se ejecutará una función en la cual iteraré sobre el conjunto de elementos del formulario. En cada iteración, eliminaré el valor del elemento en cuestión y si posee el atributo innerHTML el cual hace referencia al contenido del elemento, elimino su contenido.



Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand
  #5 (permalink)  
Antiguo 27/08/2014, 17:27
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Limpiar formulario usando for

Alexis88:

no me funcionaria, necesito resolver lo del for que te comento, pues ese objeto que se barre por los 12 meses demnominado metas, también necesito en otro punto poderlo validar si capturaron o no, si lo hago general como me comentas ya no podría identificar el contenido de los campos que se generan x los 12 meses....

Mi jefe paso a verme y me comento algo de que debía ser asi:

Código HTML:
var PrefijoObj = "txtMetProg";

for(var i=1;i<=12;i++){      
    FrmInd.getElementsByName(res).value = "";
    }
Pero tampoco me funcionó.....

Te agradezco mucho.
  #6 (permalink)  
Antiguo 27/08/2014, 17:33
Avatar de citaem  
Fecha de Ingreso: agosto-2005
Mensajes: 218
Antigüedad: 18 años, 8 meses
Puntos: 0
Respuesta: Limpiar formulario usando for

Me falto:


Código Javascript:
Ver original
  1. var PrefijoObj = "txtMetProg";
  2.  
  3. for(var i=1;i<=12;i++){    
  4.      
  5.     var res = PrefijoObj.concat(i);  // funcion concat para unir las cadenas      
  6.    
  7.     document.FrmInd.getElementsByName(res).value = "";  
  8.  
  9.     }
  #7 (permalink)  
Antiguo 28/08/2014, 03:55
Avatar de Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 12 años, 5 meses
Puntos: 977
Respuesta: Limpiar formulario usando for

No habías mencionado esto antes:

Cita:
Iniciado por citaem Ver Mensaje
ese objeto que se barre por los 12 meses denominado metas, también necesito en otro punto poderlo validar si capturaron o no...
Solo dijiste que querías borrar el contenido de los combos. Si necesitas que 'en otro punto' se realice otra acción, bastaría con que crees otra función o adaptes dicha función al borrado de datos que muestro.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand

Etiquetas: formulario, funcion, limpiar, usando
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 09:09.