Foros del Web » Programando para Internet » Javascript »

Como saber cuantos campos de un form quedaron vacios?

Estas en el tema de Como saber cuantos campos de un form quedaron vacios? en el foro de Javascript en Foros del Web. Hola a todos Quiero hacer una funcion javascript que me retorne la cantidad de campos vacios en un form. Esto con el fin de obligar ...
  #1 (permalink)  
Antiguo 29/09/2013, 10:22
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Como saber cuantos campos de un form quedaron vacios?

Hola a todos

Quiero hacer una funcion javascript que me retorne la cantidad de campos vacios en un form. Esto con el fin de obligar al usuario llenar al menos 3 campos para poder realizar una busqueda.

Hice lo siguiente pero no me funciona:
Código HTML:
function quantityOfEmpty(){
   var account =  document.frmSearch.Account.value;
   var first =    document.frmSearch.FirstName.value;
   var last =     document.frmSearch.LastName.value;
   var email =    document.frmSearch.Email.value;
   var pass =     document.frmSearch.Password.value;
   var web =      document.frmSearch.cmbWebSite.value;
   var ip =       document.frmSearch.IpAddress.value;
   var login1 =   document.frmSearch.LoginDateIni.value;
   var login2 =   document.frmSearch.LoginDateEnd.value;
   var zip =      document.frmSearch.Zip.value;
   var phnumber = document.frmSearch.Phnumber.value;
   var active =   document.frmSearch.optionsActive.value;
   var success =  document.frmSearch.optionsSuccess.value;
   
   validate(account,first,last,email,pass,web,ip,login1,login2,zip,phnumber,active,success)
   
   if(validate < 3 ){
	 alert('Debes de llenar al menos 3 campos');
     return false;
   }else
     return true;
}

function validate(account,first,last,email,pass,web,ip,login1,login2,zip,phnumber,active,success){
	var count = 0;
	
	if(account.value != "")
	  count = count + 1;
	
	if(first.value != "")
	  count = count + 1;
	 
	if(last.value != "")
	  count = count + 1;
	  
	if(email.value != "")
	  count = count + 1;
	  
	if(pass.value != "")
	  count = count + 1;
	  
	if(web.value == 0)
	  count = count + 1;
	  
	if(ip.value != "")
	  count = count + 1;
	  
	if(login1.value != "")
	  count = count + 1;
	  
	if(login2.value != "")
	  count = count + 1;
	  
	if(zip.value != "")
	  count = count + 1;
	 
	if(phnumber.value != "")
	  count = count + 1;
	  
	if(active.value != "")
	  count = count + 1;
	  
	if(success.value != "")
	  count = count + 1;
	  
	return count;
}
Nota: Ya valide que el nombre del formulario y los campos sean los correctos, pero aun asi no me arroja el alert cuando los dejo vacio.
  #2 (permalink)  
Antiguo 29/09/2013, 10:49
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Como saber cuantos campos de un form quedaron vacios?

Ahora estoy pensando en un código de 10 líneas y me hace gracia lo que te has complicado
  #3 (permalink)  
Antiguo 29/09/2013, 10:50
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Respuesta: Como saber cuantos campos de un form quedaron vacios?

Umm podrias ayudarme a como solucionarlo a tu manera ?
  #4 (permalink)  
Antiguo 29/09/2013, 10:53
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Como saber cuantos campos de un form quedaron vacios?

Bueno, en vez de almacienar cientos de variables no se si sabrás que hay un array que se llama elements[] y que puedes hacer la misma condición if para todos los elementos del form con un bucle for. Ahora te pongo el ejemplo.
  #5 (permalink)  
Antiguo 29/09/2013, 10:58
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Respuesta: Como saber cuantos campos de un form quedaron vacios?

Gracias amigo...!

Una duda... Los radiobutton y combobox son validados con esa funcion que dice ?
  #6 (permalink)  
Antiguo 29/09/2013, 11:00
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Como saber cuantos campos de un form quedaron vacios?

Todavía está en fase BETA xD
Código Javascript:
Ver original
  1. //obtenemos todos los elementos del form con etiqueta input
  2. var elements = document.frmSearch.elements.getElementsByTagname('input');
  3. //variable para comprobar los campos vacios
  4. var errors = 0;
  5. for(i=0; i<elements.length; i++){
  6. //checkamos el valor
  7. if(elements[i].value=="" || elements.value==" "){
  8. //incrementamos errores si hace falta
  9. ++errors;
  10. }else{
  11. return true;
  12. }
  13. //despues de la salida del bucle hacemos
  14. if(errors==3){
  15. // Alert y redireccion o lo que quieras
  16. }

Última edición por PHPeros; 29/09/2013 a las 11:17
  #7 (permalink)  
Antiguo 29/09/2013, 11:17
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Respuesta: Como saber cuantos campos de un form quedaron vacios?

Umm probare gracias !
  #8 (permalink)  
Antiguo 29/09/2013, 11:23
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Respuesta: Como saber cuantos campos de un form quedaron vacios?

No me funciono amigo no me entra al alert !
  #9 (permalink)  
Antiguo 29/09/2013, 11:31
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Como saber cuantos campos de un form quedaron vacios?

oops, es getElementsByTagName()
Sustituye esa función a ver...
  #10 (permalink)  
Antiguo 29/09/2013, 11:36
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Respuesta: Como saber cuantos campos de un form quedaron vacios?

lo tengo asi :

Cita:
function quantityOfEmpty(){
//obtenemos todos los elementos del form con etiqueta input
var elements = document.frmSearch.elements.getElementsByTagName(' input');
//variable para comprobar los campos vacios
var errors = 0;
for(i=0; i<elements.length; i++){
//checkamos el valor
if(elements[i].value=="" || elements.value==""){
//incrementamos errores si hace falta
++errors;
}else
return true;
}
//despues de la salida del bucle hacemos
if(errors==5){
// Alert y redireccion o lo que quieras
alert('Debes digitar al menos');
return false;
}else
return true;
}
Y no me funciona !
  #11 (permalink)  
Antiguo 29/09/2013, 12:07
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Como saber cuantos campos de un form quedaron vacios?

:3 Como no sea el espacio en blanco del getElements...(' input').
Si no prueba a poner datos válidos y un alert en el "else" final. Si funciona es facil localizar el error.
  #12 (permalink)  
Antiguo 29/09/2013, 12:20
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Respuesta: Como saber cuantos campos de un form quedaron vacios?

Alli no hay ningun espacio ya lo verifique y ya envie un alert en el else y nada!
  #13 (permalink)  
Antiguo 29/09/2013, 13:25
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Como saber cuantos campos de un form quedaron vacios?

Código javascript:
Ver original
  1. function validar(){
  2. var elem = document.frmSearch.elements.getElementsByTagName('input');
  3. var errors = 0;
  4. for(i=0; i<elem.length; i++){
  5. if(elem[i].value=="" || elem[i].value==" "){
  6. ++errors;
  7. }
  8. }
  9. if(errors>=5){
  10. alert('Rellena todo!');
  11. }else{
  12. document.frmSearch.submit();
  13. return true;
  14. }
  15. }

Última edición por PHPeros; 29/09/2013 a las 13:34
  #14 (permalink)  
Antiguo 29/09/2013, 13:35
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Exclamación Respuesta: Como saber cuantos campos de un form quedaron vacios?

Hola...

Debuguie el codigo y algo esta pasando en esta linea ya que cuando llega alli se cae la funcion:

Cita:
var elem = document.frmSearch.elements.getElementsByTagName(' input');
  #15 (permalink)  
Antiguo 29/09/2013, 13:43
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Alguien puede ayudarme con esta funcion javascript?

Hola a todos...

Tengo esta funcion donde se valida la cantidad de campos que quedaron vacios al intentar enviar el formulario:

Código PHP:
function validar(){
var 
elem document.frmSearch.elements.getElementsByTagName('input');
var 
errors 0
for(
i=0i<elem.lengthi++){
if(
elem[i].value=="" || elem[i].value==" "){
++
errors;
}
}
if(
errors>=5){
alert('Rellena todo!');
}else{
document.frmSearch.submit();
return 
true;
}

Luego en el form hago esto:
Código HTML:
<form id="frmSearch" name="frmSearch" action="" method="post" onsubmit="return quantityOfEmpty()">
   .
   .
   .
</form> 
Pero algo esta pasando por que el form siempre se envia...! Alguna ayudita por favor?
  #16 (permalink)  
Antiguo 29/09/2013, 14:39
Avatar de adryan310  
Fecha de Ingreso: septiembre-2012
Mensajes: 450
Antigüedad: 11 años, 7 meses
Puntos: 3
Pregunta Respuesta: Como saber cuantos campos de un form quedaron vacios?

oops sorry!

el form es este es q copie el viejo jeje:

Código HTML:
<form id="frmSearch" name="frmSearch" action="" method="post" onsubmit="return validar()">

   

</form> 
Pero aun asi no me funca !
  #17 (permalink)  
Antiguo 30/09/2013, 13:40
Colaborador
 
Fecha de Ingreso: septiembre-2013
Ubicación: España
Mensajes: 3.648
Antigüedad: 10 años, 7 meses
Puntos: 578
Respuesta: Como saber cuantos campos de un form quedaron vacios?

Espera, voy a reirme un rato
Ok, son buenas noticias porque significa que el código funciona!
el frmSearch.submit() lo hice aposta para que si no hay errores lo enviara automáticamente... Ahora tu puedes poner la estructura que quieras pero en principio funciona. (Puedes quitar los returns)
Salu2! +1
  #18 (permalink)  
Antiguo 30/09/2013, 13:53
Avatar de dAvidcA  
Fecha de Ingreso: septiembre-2009
Ubicación: /home/dev/
Mensajes: 73
Antigüedad: 14 años, 7 meses
Puntos: 7
Respuesta: Como saber cuantos campos de un form quedaron vacios?

Hola adryan310, claro el código Javascript no tiene return false; en ningún lado, por lo tanto siempre enviará.

Antes del último } pon return false; o también puede ser en la siguiente línea luego del alert.

Código Javascript:
Ver original
  1. .  
  2.     .
  3.     .
  4.     .
  5.     return false;
  6. }

Saludos.

Etiquetas: campos, form, formulario, funcion, input
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 16:48.