Foros del Web » Programando para Internet » Javascript »

Problema con condicionales y los operadores lógicos.

Estas en el tema de Problema con condicionales y los operadores lógicos. en el foro de Javascript en Foros del Web. Hola amigos "JavaScripteros" Espero que estén bien... Les cuento Tengo varias select y necesito que si alguna de ellas tiene un valor, por ejemplo "no", ...
  #1 (permalink)  
Antiguo 08/10/2010, 16:34
 
Fecha de Ingreso: noviembre-2008
Mensajes: 154
Antigüedad: 15 años, 5 meses
Puntos: 2
Problema con condicionales y los operadores lógicos.

Hola amigos "JavaScripteros"

Espero que estén bien...

Les cuento

Tengo varias select y necesito que si alguna de ellas tiene un valor, por ejemplo "no", ejecute una accion.

La cosa es que yo en el condicional sabría hacerlo si tuvieran que ser todas con un valor, es decir:

if (hola == no && adiós == no) { alert('El value es no')}
else {};

Pero yo lo que necesito es que si en uno el valor es "no" y el otro es "sí", salte una alerte de que un valor es "no"...

Si no lo entienden, pregunten

Saludos, gracias de antemano
  #2 (permalink)  
Antiguo 08/10/2010, 16:50
 
Fecha de Ingreso: agosto-2008
Mensajes: 606
Antigüedad: 15 años, 8 meses
Puntos: 11
Respuesta: Problema con condicionales y los operadores lógicos.

haber asi a vote pronto solo tienes que negar el condicional y cambiar el mensaje de alerta prueba:

if (!(hola == no && adiós == no)) { alert('alguno de los values es no')}
else {};
  #3 (permalink)  
Antiguo 08/10/2010, 16:58
 
Fecha de Ingreso: noviembre-2008
Mensajes: 154
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Problema con condicionales y los operadores lógicos.

pero yo lo he intentado así y solo funciona cuando los dos values son "no", pero si uno es "si" se sigue ejecutando if, no else.
No sé si me entiendes.
  #4 (permalink)  
Antiguo 08/10/2010, 17:00
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problema con condicionales y los operadores lógicos.

¿y si ambos son "si" que tambien muestre el alerta? si debe mostrar el alerta cuando solamente uno de ello es "si" y el otro "no", necesitarias un operador XOR. el problema es que ese operador no existe a nivel logico, sino mas bien a nivel bitwise. de todos modos se puede usar el operador XOR bitwise ya que estarias comparando dos boolean los cuales son convertidos a numeros como 1 y 0. si eso es lo que necesitas, cambia el operador && (and) por ^ (xor).

@edit,
la solucion de trevol tambien deberia funcionar porque si uno es "si" (false) y el otro es "no" (true), por tanto true && false devuelve false. y luego, el operador ! (not) invierte el boolean a true, por tanto debe procesar el if.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.
  #5 (permalink)  
Antiguo 08/10/2010, 17:14
 
Fecha de Ingreso: noviembre-2008
Mensajes: 154
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Problema con condicionales y los operadores lógicos.

he probado con ^ pero no funciona, y lo otro, al no saber mucho de javascript pues no tengo ni idea de lo que hablas..jejje



ESTO ULTIMO NO LO HE DICHO...

jejej acabo de darme cuenta de algo, dejame probarlo

EDITO:

probado lo de trevol y lo tuyo, pero nada funciona
  #6 (permalink)  
Antiguo 08/10/2010, 17:18
 
Fecha de Ingreso: agosto-2008
Mensajes: 606
Antigüedad: 15 años, 8 meses
Puntos: 11
Respuesta: Problema con condicionales y los operadores lógicos.

haber fijate que en el codigo tuyo posteado:

if (hola == no && adiós == no) { alert('El value es no')}
else {};

y en el que yo te posteo la diferencia es que hay un negador delante y su respectivo parentesis, es posible que no lo hayas visto:

if (!(hola == no && adiós == no)) { alert('alguno de los values es no')}
else {};
  #7 (permalink)  
Antiguo 08/10/2010, 17:23
 
Fecha de Ingreso: noviembre-2008
Mensajes: 154
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Problema con condicionales y los operadores lógicos.

sí, lo agregué, pero sigue igual, la unica diferencia es que aunque cambie el value a si de todos, sigue mostrando la alerta.

Miren aquí va el codigo que tengo yo:

Código Javascript:
Ver original
  1. if (valor_0 == 0 && valor_1 == 0 && valor_2 == 0 && valor_3 == 0) {
  2.                     alert('Faltan datos por especificar, no se puede visualizar el pedido.');
  3.                 } else {
  4.                     document.getElementById('visualizador').value = (valor_total);
  5.                 }
  #8 (permalink)  
Antiguo 08/10/2010, 17:24
Avatar de zerokilled
Javascripter
 
Fecha de Ingreso: abril-2009
Ubicación: Isla del Encanto, La Borinqueña [+>==]
Mensajes: 8.050
Antigüedad: 15 años
Puntos: 1485
Respuesta: Problema con condicionales y los operadores lógicos.

otro detalle que quizas estes pasando por alto. se entiende que estas comparando dos variables: hola y no; adios y no. si estas variables no estan definidas se genera error. ha no ser que solo fuera a modo de concepto.

@edit luego de leer ultima respuesta,
o sea, ¿tu quieres entrar al bloque if si alguno de ellos es de valor 0? en ese caso tienes que cambiar todos los operadores && (and) por || (or). en una comparacion && todos los operando deben dar cierto para poder entrar al bloque. con ||, al menos uno de ello debe dar cierto para entrar al bloque.
__________________
la maldad es una virtud humana,
y la espiritualidad es la lucha del hombre contra su maldad.

Última edición por zerokilled; 08/10/2010 a las 17:29
  #9 (permalink)  
Antiguo 08/10/2010, 17:41
 
Fecha de Ingreso: agosto-2008
Mensajes: 606
Antigüedad: 15 años, 8 meses
Puntos: 11
Respuesta: Problema con condicionales y los operadores lógicos.

haber si esto es lo que quieres y segun entiene también Zerokilled:
Código Javascript:
Ver original
  1. if (valor_0 == 0 || valor_1 == 0 || valor_2 == 0 || valor_3 == 0) {
  2.                     alert('Faltan datos por especificar, no se puede visualizar el pedido.');
  3.                 } else {
  4.                     document.getElementById('visualizador').value = (valor_total);
  5.                 }
  #10 (permalink)  
Antiguo 08/10/2010, 17:42
 
Fecha de Ingreso: noviembre-2008
Mensajes: 154
Antigüedad: 15 años, 5 meses
Puntos: 2
Respuesta: Problema con condicionales y los operadores lógicos.

amigo, si, las variables están definidas y me has recordado un operador que hace mucho no ocupaba!!! || , eso es lo que necesito.

ajjaja tanta mi***a para llegar a esto: || xD


muchas graciaaasss!!!

Etiquetas: condicionales, operadores
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 20:19.