Javascript if语句未返回预期结果

Javascript if语句未返回预期结果,javascript,Javascript,如果用户在密码字段中输入字符串“secret”,则应在最后一条else语句中显示文本。它只返回第一个else中的语句。有人能解释一下原因吗 var pword = document.getElementById('password'); //create event listener on password field's blur event pword.addEventListener('blur', passwordCheck, false); var messageField = doc

如果用户在密码字段中输入字符串“secret”,则应在最后一条else语句中显示文本。它只返回第一个else中的语句。有人能解释一下原因吗

var pword = document.getElementById('password'); //create event listener on password field's blur event
pword.addEventListener('blur', passwordCheck, false);
var messageField = document.createElement('div');
messageField.setAttribute('id', 'forMessage');
var fieldPassword = document.getElementById('password');
//get form id to create parentNode for message field
var form = document.getElementById('form');
//append form to add message field div
form.appendChild(messageField);
//add message to messageField
var paragraph = document.createElement('p');
function passwordCheck(){ //check to make sure the password is equal to the string "secret"
    if (fieldPassword !=='secret'){
       var wrongPassword = document.createTextNode('That is not the right password');
       paragraph.appendChild(wrongPassword);
       messageField.appendChild(paragraph);
    }else{
        var correctPassword = document.createTextNode('Good... That is the right password');
        paragraph.appendChild(correctPassword);
        messageField.appendChild(paragraph);
        console.log('made it');
    }
}

fieldPassword
是输入元素,而不是值,请尝试:

fieldPassword.value !== 'secret'
而不是:

fieldPassword !== 'secret'
看看你做了什么:

  • var pword=document.getElementById('password')
  • 然后再次

  • var fieldPassword=document.getElementById('password')
  • 为什么
    pword
    fieldPassword
    是相同的对象

    无论如何,切中要害。表达式
    fieldPassword!='secret“
    将始终为true,因为
    fieldPassword
    是DOM元素,而不是字符串。

    如果您有类似于
    的内容,则可以从
    输入
    元素的
    属性中获取清晰的密码文本


    您可能想做的是在
    if(fieldPassword.value!==“secret”)行中删除我的答案。

    我把php和JS都搞错了