如果用户在密码字段中输入字符串'secret',它应该在最后一个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');
}
}
答案 0 :(得分:2)
fieldPassword
是输入元素,而不是值,因此请尝试:
fieldPassword.value !== 'secret'
而不是:
fieldPassword !== 'secret'
答案 1 :(得分:0)
看看你做了什么:
var pword = document.getElementById('password');
var fieldPassword = document.getElementById('password');
为什么呢? - pword
和fieldPassword
是相同的对象。
无论如何,到了这一点。表达式fieldPassword !== 'secret'
将始终为true,因为fieldPassword
是DOM元素,而不是字符串。
如果你有类似<input type="password" id="password">
的内容,那么你可以从value
元素的input
属性中获取明确的密码文本。
您可能想要做的是if(fieldPassword.value !== 'secret')