为什么这段代码不会在if()语句中执行语句?
Page有两个输入字段和一个按钮。代码是:
var n = document.getElementById("user").value;
var p = document.getElementById("password").value;
document.getElementById("button").onclick=function(){
if(n=='abc' && p=='abc') alert('Welcome '+n);
else
alert('Enter the correct credentials');
};
即使我输入值abc& abc。
,也会在显示else后显示警告答案 0 :(得分:3)
问题是,当为变量赋值时,文本框值为空。因此,与' abc'他们回归虚假。
var button1 = document.getElementById('button');
button1.onclick = function() {
var n = document.getElementById("user").value;
var p = document.getElementById("password").value;
if(n=='abc' && p=='abc') alert('Welcome '+n);
else
alert('Enter the correct credentials');
}
此代码在单击按钮后检查文本字段的值,因此按预期工作。请参考这里的小提琴http://jsfiddle.net/5HHkZ/
答案 1 :(得分:2)
执行脚本时,#user
和#password
输入为空,因此n
和p
变量也是空的。
当您执行var n = document.getElementById("user").value;
时, COPY 将#user
输入值添加到您的变量中:这不是参考。我的意思是,如果输入#user
值发生变化,var n
将不会更改。
因此,您必须在触发点击事件时获取输入值:
document.getElementById("button").onclick=function(){
var n = document.getElementById("user").value;
var p = document.getElementById("password").value;
if(n=='abc' && p=='abc') alert('Welcome '+n);
else
alert('Enter the correct credentials');
};