缺少If语句参数中的内容

时间:2013-11-18 12:41:10

标签: javascript

为什么这段代码不会在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后显示警告

2 个答案:

答案 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输入为空,因此np变量也是空的。 当您执行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');
};