Анкета JS (null, пустая строка)
Подскажите, как синтаксически правильно записать код, чтобы на пустую строку в анкете или на кнопки ок/отмена появлялось доп окно с просьбой ввести еще раз данные?
У меня получается на одну из кнопок не реагирует, в результате null выдает.
var surname=prompt('Введите вашу фамилию:');
while ( (surname===" ")||(surname===null) ) {
surname=prompt('Введите корректно вашу фамилию:');
if ( (surname!==" ")&&(surname!==null) )
break;
}
Спасибо.
Ваш код содержит ошибку в условии цикла while. Вместо surname===" " нужно использовать surname==="", чтобы проверить, является ли переменная surname пустой строкой. Также нужно изменить условие surname===null на surname === null || surname === "", чтобы проверить, была ли нажата кнопка "Отмена" или введена пустая строка.
Исправленный код будет выглядеть так:
var surname = prompt('Введите вашу фамилию:');
while (surname === "" || surname === null) {
surname = prompt('Введите корректно вашу фамилию:');
if (surname !== "" && surname !== null) {
break;
}
}
В данном коде условие цикла проверяет, является ли surname пустой строкой или null, и если это так, то вызывается второй prompt. Если же пользователь ввел корректное значение (не пустую строку и не нажал кнопку "Отмена"), то цикл прерывается с помощью break.
Ваш код JavaScript в целом выглядит правильно, но есть одна ошибка. Вы проверяете surname на равенство пустой строке или null, но вы не проверяете null в случае, если surname является null. Это может вызвать ошибку, поскольку вы пытаетесь сравнить null со строкой.
Вместо этого, вы можете добавить дополнительную проверку на null перед проверкой на пустую строку. Вот исправленный код:
var surname;
do {
surname = prompt('Введите вашу фамилию:');
} while (surname === null || surname.trim() === '');
В этом коде мы используем цикл do-while, чтобы продолжать запрашивать ввод фамилии, пока не будет введено корректное значение. Мы также используем метод trim() для удаления пробелов в начале и в конце строки.
никак браузер запрещает зацикливать диалоговые окна а то были любители завешать браузер таким способом