Tengo 3 campos de entrada con texto. Quiero usar una instrucción if con operadores lógicos para verificar si alguno de los campos de entrada está en blanco, pero no puedo usar o (||) para las 3 variables.

¿Cuál es la forma correcta de usar operadores lógicos?

let name = $("#name").val();
let email = $("#email).val();
let color = $("#color).val();

if(name == '' && ( email == '' || color == '') {
  console.log("please complete form");
 }
else {
//submit data
}

El código funciona como se desea si dejo el campo de nombre en blanco, pero debido a que el nombre es verdadero, la declaración if lo acepta. ¿Cómo puedo hacer que la instrucción if verifique si alguno de los campos de entrada está en blanco?

0
burnsie 30 oct. 2019 a las 03:25

3 respuestas

La mejor respuesta

Use || para cada uno:

if(name === '' || email === '' || color === '') {

No necesita las agrupaciones () porque el orden de las operaciones no importa: solo desea ver si alguna de las pruebas tiene éxito.

Tenga en cuenta que la comparación estricta de igualdad (===) es casi siempre preferible a la comparación de igualdad abstracta (==).

Debido a que .val() siempre devuelve una cadena, y desea verificar la cadena vacía, simplemente puede verificar si el valor es verdadero o no, si lo desea:

if(!name || !email || !color) {
2
CertainPerformance 30 oct. 2019 a las 00:37

Tuviste un error de sintaxis (olvidaste un paréntesis en la instrucción if).

let name = $("#name").val();
let email = $("#email).val();
let color = $("#color).val();

if(name == '' && ( email == '' || color == '')) {
  console.log("please complete form");
 }
else {
//submit data
}
0
Bobtroopo 30 oct. 2019 a las 00:57

Una cadena vacía se considera 'falsa', lo que significa que se interpreta como false cuando se utilizan operadores lógicos. Usando ese conocimiento combinado con el operador ! (no), podemos hacer esto:

if(!name || !email || !color) {
  console.log("please complete form");
}

Esa condición, en inglés simple, significa algo así como "si no es nombre o no es correo electrónico o no es color"

0
jared 30 oct. 2019 a las 00:31