Как проверить, является ли каждая из 3 переменных пустой строкой? - PullRequest
0 голосов
/ 30 октября 2019

У меня есть 3 поля ввода с текстом. Я хочу использовать оператор if с логическими операторами, чтобы проверить, не заполнены ли какие-либо поля ввода, но я не могу использовать или (||) для 3 переменных.

Как правильно использоватьлогические операторы?

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

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

код работает как нужно, если я оставляю поле имени пустым, но поскольку имя истинно, оператор if принимает его. Как сделать так, чтобы оператор if проверял, не заполнены ли какие-либо поля ввода?

Ответы [ 3 ]

2 голосов
/ 30 октября 2019

Используйте || для каждого:

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

Вам не нужны группировки (), потому что порядок операций не имеет значения - вы просто хотите увидеть, если any тестов пройдены успешно.

Обратите внимание, что строгое сравнение на равенство (===) почти всегда предпочтительнее, чем сравнение на абстрактное равенство (==).

Поскольку .val() всегда возвращаетстрока, и вы хотите проверить пустую строку, вы можете просто проверить, является ли значение истинным или нет, если вы хотели:

if(!name || !email || !color) {
0 голосов
/ 30 октября 2019

У вас была синтаксическая ошибка (забыли скобки в операторе 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 голосов
/ 30 октября 2019

Пустая строка считается ложной, что означает, что она интерпретируется как false при использовании логических операторов. Используя эти знания в сочетании с оператором ! (not), мы можем сделать следующее:

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

Это условие на простом английском языке означает что-то вроде «если не имя, не электронная почта или не цвет»

...