#javascript #html #string
#javascript #HTML #строка
Вопрос:
Я пытаюсь убедиться, что пользователь вводит значение для имени, а не просто оставляет его пустым. У меня есть драйвер, который вызывает функцию и возвращает имя переменной.
Я пытался
if (name == null || name == "") {
getName();
}
как в функции, так и под вызовом функции в драйвере. Я также пробовал цикл while в обоих местах. Оператор If в драйвере позволяет мне получить приглашение, если я дважды нажму ok, и даже если я введу имя во второй раз, оно не сохранится. Цикл while не прерывался даже после того, как я ввел имя.
Если этого кода недостаточно, просто дайте мне знать.
function driver(){
var retName = getName();
}
function getName(){
var name = prompt("Enter your name");
return name;
Я хочу, чтобы в приглашении говорилось, пожалуйста, введите действительное имя или, по крайней мере, просто не пропускайте пользователя, пока он что-то не введет.
Ответ №1:
Одним из вариантов является использование do/while
цикла:
let name;
do {
name = prompt('Enter your name');
} while (!name);
console.log(name);
Комментарии:
1. в этом случае значение do / while является префектом. 1. и
prompt
всегда будет возвращать строку , которая неверна. Если оно отменено, оно возвращаетnull
Ответ №2:
Просто используйте while
цикл:
var name = prompt("Enter your name:");
while (name == null amp;amp; name == "") {
name = prompt("Enter your name:");
}
console.log("Valid name!");
console.log(name);
Обратите внимание, что приведенное выше не касается имени, содержащего только пробелы, поэтому используйте trim
также:
var name = prompt("Enter your name:");
while (name == null amp;amp; name.trim() == "") {
name = prompt("Enter your name:");
}
console.log("Valid name!");
console.log(name);
Комментарии:
1. Приятель, твой код работает не так, как ожидалось. Если вы нажмете «Отмена», это войдет в журнал
"Valid name!"
. Попробуйте ввестиamp;amp;
в urwhile
условие.2. О да, @MaheerAli, извините, я исправил это сейчас