Javascript if语句未返回预期结果
如果用户在密码字段中输入字符串“secret”,则应在最后一条else语句中显示文本。它只返回第一个else中的语句。有人能解释一下原因吗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
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都搞错了