Конечно, это простая проблема, но я новичок в этом. Я пытаюсь разработать простой веб-сайт для того, чтобы пользователь мог выработать пароль, а затем, если он это исправит, отведите их на экран congrats, где они выиграют приз. Однако моя инструкция if не работает в коде ниже
<script>
function CheckPassword() {
var pword = document.getElementById("inpPassword").value;
if (pword == ""|| pword == NULL) {
alert("Please enter a password");
} else if (pword == 'newman') {
window.open('congratulations.html', '_self');
} else {
alert("Wrong password");
}
}
</script>
Если я добавлю предупреждение с значением pword, тогда он правильно распечатает введенное. Однако код срабатывает, когда ввод пароля пуст, однако, если поле ввода не пустое, оно не переходит на другой экран или показывает неправильное поле предупреждения о пароле. Я попробовал это с предупреждающим полем, в котором говорилось правильное, а не ссылка на новую страницу, но все еще не работало. Также попытался использовать String (pword) в случае, если это была проблема. Уверен, это простое решение, но просто не видно.
Спасибо
Вы можете попробовать здесь:
Ошибка была здесь, вы написали NULL, а не null, поскольку javascript понимает null как ключевое слово reserve.
И используйте === для жесткой проверки (данные, а также проверка типов variaable)
function CheckPassword() {
var pword = document.getElementById("inpPassword").value;
if (pword == ""|| pword == null){
alert("Please enter a password");
}
else if (pword === 'newman') {
alert('congratulations.html', '_self');
}
else
{
alert("Wrong password");
}
}
<input type="" name="a" id="inpPassword">
<input type="button" onClick="CheckPassword()" value="check">
Кажется, проблема в том, что вы сравниваете с NULL
. Если вы проверите консоль своего браузера, вы, скорее всего, получите следующую ошибку:
Uncaught ReferenceError: NULL не определен
Это не правильный синтаксис для нулевых проверок, он будет искать переменную с именем "NULL", которой у вас нет. Вместо этого вы должны использовать null
(строчные буквы):
if (pword == ""|| pword == null){
Полный скорректированный код выглядит следующим образом:
function CheckPassword() {
var pword = document.getElementById("inpPassword").value;
if (pword == ""|| pword == null) {
alert("Please enter a password");
} else if (pword == 'newman') {
window.open('congratulations.html', '_self');
} else {
alert("Wrong password");
}
}
Вы должны использовать null
вместо NULL
. Похоже, что это работает, кроме открытия нового окна, потому что в моем фрагменте нет congratulations.html
:
function CheckPassword() {
var pword = document.getElementById("inpPassword").value;
if (pword == ""|| pword == null){
alert("Please enter a password");
}
else if (pword == 'newman') {
window.open('congratulations.html', '_self');
}
else
{
alert("Wrong password");
}
}
<input id="inpPassword">
<button onclick="CheckPassword()">Click</button>
function CheckPassword() {
var pword = document.getElementById("inpPassword").value;
if (pword == ""|| pword == null){
alert("Please enter a password");
}
else if (pword == 'newman') {
window.open('congratulations.html', '_self');
}
else
{
alert("Wrong password");
}
}
<input type='password' id='inpPassword'>
<input type='button' onclick='CheckPassword()'>
if (pword == "" || pword == null)
, его null
не NULL
. ключевые слова чувствительны к регистру.
вы можете написать null
в малом случае, чтобы его работа
function CheckPassword() {
var pword = document.getElementById("inpPassword").value;
if (pword == "" || pword == null ) {
alert("Please enter a password");
} else if (pword == 'newman') {
window.open('congratulations.html', '_self');
} else {
alert("Wrong password");
}
}
<input id="inpPassword" onblur="CheckPassword()">
Null, "" эквивалентны false в Javascript. Вам просто нужно:
if (!pword) {
alert("Please enter a password");
} else if (pword === 'newman'){
window.open('congratulations.html', '_self');
} else {
alert("Wrong password");
}
if (pword == "" || pword == null)
равноif (!pword)