Foros del Web » Programando para Internet » Javascript »

sentencias if en javascript - ayudaa!!

Estas en el tema de sentencias if en javascript - ayudaa!! en el foro de Javascript en Foros del Web. Hola gente , espero que me podais ayudar, llevo comiendome la cabeza desde hace algunos dias con esto, y ya no se que hacer. Haber ...
  #1 (permalink)  
Antiguo 07/11/2008, 05:28
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Exclamación sentencias if en javascript - ayudaa!!

Hola gente , espero que me podais ayudar, llevo comiendome la cabeza desde hace algunos dias con esto, y ya no se que hacer.
Haber os comento.
Tengo hecho un formulario en php y con algo de javascript, os copia parte de él:

Código:
 <form name='formulario' id='formulario' method='post' action='confirmacion.php' target='_self' enctype="multipart/form-data" onSubmit="return validar(this)">

    <div align="center">
    <p class="Estilo10">
    <label>

    <script language="JavaScript">
function validar(form) { //verifica que haya llenado los campos
if (es_cliente == no) {
if (!form.Empresa.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Persona_de_contacto.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Actividad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.CIF_NIF.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Codigo_Postal.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Ciudad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Domicilio.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Telefono.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.email.value) {
alert("¡Debe completar todos los campos obligatorios!");
  return (false)
  } else if (!form.Cantidad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Numero_de_tintas_de_impresion.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Fecha_de_entrega_preferida.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
  } else {
  return true 
}
}
} else {
if (es_cliente == si) {
if (!form.Empresa.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Persona_de_contacto.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.email.value) {
alert("¡Debe completar todos los campos obligatorios!");
  return (false)
  } else if (!form.Cantidad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Numero_de_tintas_de_impresion.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Fecha_de_entrega_preferida.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
  } else {
  return true 
  )
  </script>

    <div align="center">
    <table width="445" border="0" cellspacing="0" cellpadding="0">
      <!--DWLayoutTable-->
      <tr>
        <td height="19" colspan="3" valign="top"><div align="left">
            <span class="Estilo14"><span class="Estilo12"><span class="Estilo17">
            <input name="asunto" type="hidden" id="asunto" value="Presupuesto personalizado de: &quot;Caja de caramelos CLIK-CLAK&quot;" />
            </span></span>
              <label><span class="Estilo12"><span class="Estilo17"> &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span> </label>
              <div align="right"><span class="Estilo12"><em><strong>
              <div align="center">Seleccione solo una opci&oacute;n para habilitar los campos que le corresponda rellenar:</div>
              </strong></em></span></div>
              <span class="Estilo12"></span><span class="Estilo12"><span class="Estilo17"> </span></span>
            <label></label>
            <div align="center">
            <div align="center">
              
              <span class="Estilo2 Estilo24">
              <input name="es_cliente" type="checkbox" value="si" onClick="document.formulario.Empresa.disabled=!document.formulario.Empresa.disabled; document.formulario.Persona_de_contacto.disabled=!document.formulario.Persona_de_contacto.disabled; document.formulario.email.disabled=!document.formulario.email.disabled; document.formulario.Cantidad.disabled=!document.formulario.Cantidad.disabled; document.formulario.Numero_de_tintas_de_impresion.disabled=!document.formulario.Numero_de_tintas_de_impresion.disabled; document.formulario.Fecha_de_entrega_preferida.disabled=!document.formulario.Fecha_de_entrega_preferida.disabled; document.formulario.archivo1.disabled=!document.formulario.archivo1.disabled"/>
              Si, soy cliente            </span></div>
            
            
            <span class="Estilo2 Estilo24">
            <label>                </label>
            
            <label></label>
            
            <label></label>
            </span>
            <span class="Estilo24"><label></label><label></label></span><label><div align="center">
                  
                <span class="Estilo2 Estilo24">
                <input name="es_cliente" type="checkbox" value="no" onClick="document.formulario.Empresa.disabled=!document.formulario.Empresa.disabled; document.formulario.Persona_de_contacto.disabled=!document.formulario.Persona_de_contacto.disabled; document.formulario.Actividad.disabled=!document.formulario.Actividad.disabled; document.formulario.CIF_NIF.disabled=!document.formulario.CIF_NIF.disabled; document.formulario.Domicilio.disabled=!document.formulario.Domicilio.disabled; document.formulario.Codigo_Postal.disabled=!document.formulario.Codigo_Postal.disabled; document.formulario.Ciudad.disabled=!document.formulario.Ciudad.disabled; document.formulario.Telefono.disabled=!document.formulario.Telefono.disabled; document.formulario.email.disabled=!document.formulario.email.disabled; document.formulario.Cantidad.disabled=!document.formulario.Cantidad.disabled; document.formulario.Numero_de_tintas_de_impresion.disabled=!document.formulario.Numero_de_tintas_de_impresion.disabled; document.formulario.Fecha_de_entrega_preferida.disabled=!document.formulario.Fecha_de_entrega_preferida.disabled; document.formulario.archivo1.disabled=!document.formulario.archivo1.disabled"/>

Los checkbox lo que hacen es que si hago click en uno, habilito una serie de campos,y si hago click en otro habito otros.Hasta ahí todo bien. El problema viene cuando quiero validar que los campos no esten vacios; cuando lo hago con todos me funciona bien, pero al decirle que si el boton es_cliente es igual a si valide unos campos y si el boton es igual a no valide otros, no me valida nada... no si que tengo mal, porque aparentemente la sentencia esta bien, supongo que sera al decirle que es igual..

Código:
    <script language="JavaScript">
function validar(form) { //verifica que haya llenado los campos
if (es_cliente == no) {
if (!form.Empresa.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Persona_de_contacto.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Actividad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.CIF_NIF.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Codigo_Postal.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Ciudad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Domicilio.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Telefono.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.email.value) {
alert("¡Debe completar todos los campos obligatorios!");
  return (false)
  } else if (!form.Cantidad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Numero_de_tintas_de_impresion.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Fecha_de_entrega_preferida.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
  } else {
  return true 
}
}
} else {
if (es_cliente == si) {
if (!form.Empresa.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Persona_de_contacto.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.email.value) {
alert("¡Debe completar todos los campos obligatorios!");
  return (false)
  } else if (!form.Cantidad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Numero_de_tintas_de_impresion.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Fecha_de_entrega_preferida.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
  } else {
  return true 
  )
  </script>
Si alguien puede ayudarme, en esta sentencia, se lo agradeceria mucho.
Saludos, y gracias por adelantado.
  #2 (permalink)  
Antiguo 07/11/2008, 05:34
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: sentencias if en javascript - ayudaa!!

Primeramente que el value no se obtiene así. Tal vez te sirva esto, ya que al haber varios checks con el mismo name debes hacer referencia al índice y para saber si está seleccionado usar checked.

Además, creo que tu validación podría resumirse con un bucle for buscando por todos los inputs con getElementsByTagName.

Saludos .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 07/11/2008, 06:04
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: sentencias if en javascript - ayudaa!!

Bueno si veo mas adelante le hago con for jjjeje, pero ahora me da pereza, mientras funcione así.. mejor dejarlo... no vaya aser que luego no vaya.

Haber entonces como tu dices seria:

if (es_cliente.si == checked)

o como?
  #4 (permalink)  
Antiguo 07/11/2008, 06:06
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Respuesta: sentencias if en javascript - ayudaa!!

No, en este caso es_cliente[0] es el primero check y el segundo es_cliente[1], y para saber si alguno está seleccionado usas su propiedad checked. Aunque, me pregunto, ¿no deberían ser radios en vez de checks? .
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #5 (permalink)  
Antiguo 07/11/2008, 06:15
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: sentencias if en javascript - ayudaa!!

si, deberian..., pero con el onclick si pinchaban otra vez en el mismo se desactivaban los campos, y si pinchaban en el otro check despues de elegir el si, se quedaban los otros campos del si , entonces pensé hacer un check que asi tenian que desactivar uno y ya se desactivaban los campos de la opcion si, y pinchaban en el no, y se activaban los de la opcion no.
No se si me entiendes.
Que para no complicar mas las cosas, y poder usar el onclick hize el check, asi que si tienen los 2 pulsados, todos los campos estaran desactivados.

Bueno probare con lo que me has dicho, ya te comento.
Y muchas gracias por tu rapida respuesta.
Saludos
  #6 (permalink)  
Antiguo 10/11/2008, 04:45
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: sentencias if en javascript - ayudaa!!

Yo nose que le pasa al codigo este que no hace nada, y creo que ahora la manera de llamar al check es correcta, quizas sea cosa de la sentencia if que esta mal.

Código:
   <script language="JavaScript">
function validar(form) { //verifica que haya llenado los campos
if(form.es_cliente[1].checked) == true {
if (!form.Empresa.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Persona_de_contacto.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Actividad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.CIF_NIF.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Codigo_Postal.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Ciudad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Domicilio.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Telefono.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.email.value) {
alert("¡Debe completar todos los campos obligatorios!");
  return (false)
  } else if (!form.Cantidad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Numero_de_tintas_de_impresion.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Fecha_de_entrega_preferida.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
  } else {
  return true 
}
}
} else {
if(form.es_cliente[0].checked == true) {
if (!form.Empresa.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Persona_de_contacto.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.email.value) {
alert("¡Debe completar todos los campos obligatorios!");
  return (false)
  } else if (!form.Cantidad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Numero_de_tintas_de_impresion.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Fecha_de_entrega_preferida.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
  } else {
  return true 
  )
  </script>
  #7 (permalink)  
Antiguo 10/11/2008, 06:21
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: sentencias if en javascript - ayudaa!!

Seguramente otras cosas fallen también pero esta línea:
Código javascript:
Ver original
  1. if(form.es_cliente[1].checked) == true {
está mal. Debería ser:
Código javascript:
Ver original
  1. if(form.es_cliente[1].checked == true) {
  #8 (permalink)  
Antiguo 16/11/2008, 05:17
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: sentencias if en javascript - ayudaa!!

BUUf he probado ya de todo. y ahora lo pruebo con un solo checkbox, pero queva...sigue igual.
Alguien puede mirar haber si la sintaxis esta bien.
Código:
     <script language="JavaScript">
function validar(form) { //verifica que haya llenado los campos
if (form[0].es_cliente[1].checked==true) {
return (true)
if (!form.Empresa.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Persona_de_contacto.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Actividad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.CIF_NIF.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Codigo_Postal.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Ciudad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Domicilio.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Telefono.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.email.value) {
alert("¡Debe completar todos los campos obligatorios!");
  return (false)
  } else if (!form.Cantidad.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Numero_de_tintas_de_impresion.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
} else if (!form.Fecha_de_entrega_preferida.value) {
alert("¡Debe completar todos los campos obligatorios!");
return (false)
  } else {
  return true 
}
} 
</script>
Gracias por adelantado
  #9 (permalink)  
Antiguo 16/11/2008, 07:04
venkman
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: sentencias if en javascript - ayudaa!!

if (form[0].es_cliente[1].checked==true) {

¿Por qué has puesto ese [0] ahí?
  #10 (permalink)  
Antiguo 16/11/2008, 07:04
Avatar de JavierB
Colaborador
 
Fecha de Ingreso: febrero-2002
Ubicación: Madrid
Mensajes: 25.052
Antigüedad: 22 años, 2 meses
Puntos: 772
Respuesta: sentencias if en javascript - ayudaa!!

Hola aNti_toT

¿Es necesario poner el código en todos los mensajes?

Saludos,
  #11 (permalink)  
Antiguo 17/11/2008, 08:14
 
Fecha de Ingreso: noviembre-2008
Mensajes: 8
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: sentencias if en javascript - ayudaa!!

Perdona, solo puse el codigo, porque creo que hice una modificación y tambien lo reducí.

Y pongo [0] porque nose, porque empeze a probar cosas,y haber si poniendo el indice, lo encontraba, pero bueno, incluso quitandolo no me funciona.
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 22:26.