Сравнение строк Javascript не обнаружено

1

Конечно, это простая проблема, но я новичок в этом. Я пытаюсь разработать простой веб-сайт для того, чтобы пользователь мог выработать пароль, а затем, если он это исправит, отведите их на экран 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) в случае, если это была проблема. Уверен, это простое решение, но просто не видно.

Спасибо

  • 0
    Пожалуйста, предоставьте HTML, чтобы мы могли проверить ваш код. Также проверьте консоль браузера, я подозреваю, что это скажет вам проблему
  • 0
    Эквивалентно тому, что if (pword == "" || pword == null) равно if (!pword)
Теги:

6 ответов

1

Вы можете попробовать здесь:

Ошибка была здесь, вы написали 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">
  • 0
    Это будет работать в случае вашего.
1

Кажется, проблема в том, что вы сравниваете с 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");    
    }
}

Вот рабочий пример.

1

Вы должны использовать 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>
1

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. ключевые слова чувствительны к регистру.

0

вы можете написать 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()">
  • 0
    Спасибо за вашу помощь. Теперь работает нормально,
0

Null, "" эквивалентны false в Javascript. Вам просто нужно:

    if (!pword) {
        alert("Please enter a password");
    } else if (pword === 'newman'){
        window.open('congratulations.html', '_self');        
    } else {           
        alert("Wrong password");   
    }        

Ещё вопросы

Сообщество Overcoder
Наверх
Меню