Foros del Web » Programando para Internet » Javascript »

AYUDA!! if anidados o switch-case???

Estas en el tema de AYUDA!! if anidados o switch-case??? en el foro de Javascript en Foros del Web. hola!! como va?? tengo este código que hice para validar los campos de un formulario.. lo tuve que hacer con if anidados, porque según la ...
  #1 (permalink)  
Antiguo 11/08/2008, 20:46
Avatar de fakulicious  
Fecha de Ingreso: mayo-2008
Ubicación: Mendoza
Mensajes: 140
Antigüedad: 15 años, 11 meses
Puntos: 2
Exclamación AYUDA!! if anidados o switch-case???

hola!! como va??


tengo este código que hice para validar los campos de un formulario..


lo tuve que hacer con if anidados, porque según la primera opción que se elige (Empresa o Particular) son los campos que valida..

pero no funciona..

quiero saber si está bien hecho el código.. estuve viendo, y la solución para los if anidados puede ser el switch-case.. pero no sé como se usa.. es la primera vez que programo algo así en JavaScript..


si alguien sabe, le agradecería mucho que me diga..

Código HTML:
<script language="javascript" type="text/javascript">
function Validar(form){
	if (form.tipo_cliente.value == ""){ 
		alert("Por favor ingrese el Tipo de Cliente"); 
		form.empresa.focus(); 
		return; 
	}
	if (form.tipo_cliente.value == "E"){
		if (form.empresa.value == ""){ 
			alert("Por favor ingrese el Nombre de la Empresa"); 
			form.empresa.focus(); 
			return; 
		}
		if (form.nombre.value == ""){ 
			alert("Por favor ingrese el Nombre del responsable de la Empresa"); 
			form.nombre.focus(); 
			return; 
		}
		if (form.apellido.value == ""){ 
			alert("Por favor ingrese el Apellido del responsable de la Empresa"); 
			form.apellido.focus(); 
			return; 
		}
		if (form.dni_cuit.value == ""){ 
			alert("Por favor ingrese la CUIT de la Empresa"); 
			form.dni_cuit.focus(); 
			return; 
		}
		if (form.actividad.value == ""){ 
			alert("Por favor ingrese la Actividad de la Empresa"); 
			form.actividad.focus(); 
			return; 
		}
		if (form.ciuu1.value == ""){ 
			alert("Por favor ingrese el CIUU Primario de la Empresa"); 
			form.ciuu1.focus(); 
			return; 
		}
		if (form.domicilio.value == ""){ 
			alert("Por favor ingrese el Domicilio de la Empresa"); 
			form.domicilio.focus(); 
			return; 
		}
		if (form.ciudad.value == ""){ 
			alert("Por favor ingrese la Ciudad de la Empresa"); 
			form.ciudad.focus(); 
			return; 
		}
		if (form.cp.value == ""){ 
			alert("Por favor ingrese el Código Postal de la Empresa"); 
			form.cp.focus(); 
			return; 
		}
		if (form.provincia.value == "Seleccionar..."){ 
			alert("Por favor ingrese la Provincia de la Empresa"); 
			form.provincia.focus(); 
			return; 
		}
		if (form.email.value == ""){ 
			alert("Por favor ingrese la Dirección de E-Mail del Responsable de la Empresa"); 
			form.email.focus(); 
			return; 
		}
		if (form.email.value.indexOf('@', 0) == -1 || form.email.value.indexOf('.', 0) == -1){ 
			alert("La Dirección de E-Mail no es válida"); 
			form.email.focus(); 
			return; 
		}
		if (form.tel.value == ""){ 
			alert("Por favor ingrese el Teléfono de la Empresa"); 
			form.tel.focus(); 
			return; 
		}
		if (form.usuario.value == ""){ 
			alert("Por favor ingrese el Nombre de Usuario que desea asignar a este cliente"); 
			form.usuario.focus(); 
			return; 
		}
		if (form.password.value == ""){ 
			alert("Por favor ingrese la Contraseña que desea asignar a este cliente"); 
			form.password.focus(); 
			return; 
		}
		form.submit();
	}
	if (form.tipo_cliente.value == "P"){
		if (form.nombre.value == ""){ 
			alert("Por favor ingrese el Nombre del Cliente"); 
			form.nombre.focus(); 
			return; 
		}
		if (form.apellido.value == ""){ 
			alert("Por favor ingrese el Apellido del Cliente"); 
			form.apellido.focus(); 
			return; 
		}
		if (form.dni_cuit.value == ""){ 
			alert("Por favor ingrese la DNI del Cliente"); 
			form.dni_cui.focus(); 
			return; 
		}
		if (form.domicilio.value == ""){ 
			alert("Por favor ingrese el Domicilio del Cliente"); 
			form.domicilio.focus(); 
			return; 
		}
		if (form.ciudad.value == ""){ 
			alert("Por favor ingrese la Ciudad del Cliente"); 
			form.ciudad.focus(); 
			return; 
		}
		if (form.cp.value == ""){ 
			alert("Por favor ingrese el Código Postal del Cliente"); 
			form.cp.focus(); 
			return; 
		}
		if (form.provincia.value == "Seleccionar..."){ 
			alert("Por favor ingrese la Provincia del Cliente"); 
			form.provincia.focus(); 
			return; 
		}
		if (form.email.value == ""){ 
			alert("Por favor ingrese la Dirección de E-Mail del Cliente"); 
			form.email.focus(); 
			return; 
		}
		if (form.email.value.indexOf('@', 0) == -1 || form.email.value.indexOf('.', 0) == -1){ 
			alert("La Dirección de E-Mail no es válida"); 
			form.email.focus(); 
			return; 
		}
		if (form.tel.value == ""){ 
			alert("Por favor ingrese el Teléfono del Cliente"); 
			form.tel.focus(); 
			return; 
		}
		if (form.usuario.value == ""){ 
			alert("Por favor ingrese el Nombre de Usuario que desea asignar a este cliente"); 
			form.usuario.focus(); 
			return; 
		}
		if (form.password.value == ""){ 
			alert("Por favor ingrese la Contraseña que desea asignar a este cliente"); 
			form.password.focus(); 
			return; 
		}
		form.submit();
	}
}
</script> 

gracias


Phaq!*
  #2 (permalink)  
Antiguo 12/08/2008, 07:32
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: AYUDA!! if anidados o switch-case???

A simple vista no parece tener errores, en este caso no sirve el switch-case ya que son variables diferentes.
Lo que se me ocurre para simplificar el código es colocar en una variable el tipo de cliente, por ejemplo:
Código PHP:
var cliente ' del Cliente' 
Así, haces las comparaciones una única vez, y muestras los alert así:
Código PHP:
alert('Ingrese el nombre' cliente); 
Pero, ¿donde estás haciendo esa validación? ¿Podrías poner el código de tu formulario?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 12/08/2008, 12:02
Avatar de fakulicious  
Fecha de Ingreso: mayo-2008
Ubicación: Mendoza
Mensajes: 140
Antigüedad: 15 años, 11 meses
Puntos: 2
Exclamación Respuesta: AYUDA!! if anidados o switch-case???

Probé cambiando la línea

Código PHP:
if (form.tipo_cliente.value == "E"){ 
por la que me pusiste en el otro mensaje:

Código PHP:
if (form.tipo_cliente[0].cheked){ 
y tampoco funciona..

una pregunta.. el 1 y el 0 qué significan?

el formulario lo valido cuando hago click en el botón:

Código HTML:
<input name="guardar" type="button" onClick="Validar(this.form)" id="guardar" value="Guardar" /> 
El tema del bloqueo y desbloqueo de campos ya lo solucioné con eso que me dijiste.. no me di cuenta que al copiar y pegar, no modifiqué los nombres de los campos..

Muchas gracias!!


Phaq!*
  #4 (permalink)  
Antiguo 12/08/2008, 12:07
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: AYUDA!! if anidados o switch-case???

El 1 y 0 son los índices, ya que como hay dos input con el mismo nombre se convierte en una matriz.

Ah, se me olvidaba, dentro de esa misma función también colocaste mal ciuu1.
Coloca el código completo tal y como tienes ahora para ver cuál es el problema. Yo lo había probado con las modificaciones y me funcionó.

¿Has intentado lo que te dije de poner una única vez las comparaciones?
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 12/08/2008, 12:12
Avatar de fakulicious  
Fecha de Ingreso: mayo-2008
Ubicación: Mendoza
Mensajes: 140
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: AYUDA!! if anidados o switch-case???

SOLUCIONADO!!


miles de gracias... me re salvaste!!


había escrito CHEKED en vez de CHECKED... me faltaba una C.. :S

nuevamente gracias!!


me re sirve esto!!

Phaq!*
  #6 (permalink)  
Antiguo 12/08/2008, 12:14
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
De acuerdo Respuesta: AYUDA!! if anidados o switch-case???

Me alegro que haya funcionado.

Yo ni me había fijado pensando que lo habías copiado y pegado directamente .

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #7 (permalink)  
Antiguo 12/08/2008, 12:14
Avatar de fakulicious  
Fecha de Ingreso: mayo-2008
Ubicación: Mendoza
Mensajes: 140
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: AYUDA!! if anidados o switch-case???

lo de las comparaciones no lo usé.. porque en realidad esto va a quedar así.. y no se va a modificar.. solo van a ser EMPRESAS y PARTICULARES... asique por eso no me hago problema..

lo que necesitaba era validar antes de pasar al PHP.. para que no tenga que volver y completar todo el formulario de nuevo..


muchisimas gracias!!!

un abrazo!!


Phaq!*
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 01:38.