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?
3 respuestas
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) {
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
}
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"
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.