Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript If语句参数中缺少某些内容_Javascript - Fatal编程技术网

Javascript If语句参数中缺少某些内容

Javascript If语句参数中缺少某些内容,javascript,Javascript,为什么这段代码不执行if()语句中的语句 页面有两个输入字段和一个按钮。代码是: var n = document.getElementById("user").value; var p = document.getElementById("password").value; document.getElementById("button").onclick=function(){ if(n=='abc' && p=='abc') alert

为什么这段代码不执行if()语句中的语句

页面有两个输入字段和一个按钮。代码是:

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之后始终显示警报。

在脚本执行时,
\user
\password
输入为空,因此
n
p
变量也为空。 当您执行
var n=document.getElementById(“用户”).value时
,将
#用户
输入值复制到变量中:这不是引用。我的意思是,如果输入
#user
值发生变化,
var n
不会发生变化

因此,您只需在触发click事件时获取输入值:

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');
};

在执行脚本时,
#user
#password
输入为空,因此
n
p
变量也为空。 当您执行
var n=document.getElementById(“用户”).value时
,将
#用户
输入值复制到变量中:这不是引用。我的意思是,如果输入
#user
值发生变化,
var n
不会发生变化

因此,您只需在触发click事件时获取输入值:

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');
};

问题是,当为变量赋值时,文本框值为空。因此,当与“abc”进行比较时,它们返回false

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');

}

此代码在单击按钮后检查文本字段的值,因此可以按预期工作。请参阅此处的fiddle

问题是,当为变量赋值时,文本框值为空。因此,当与“abc”进行比较时,它们返回false

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');

}

此代码在单击按钮后检查文本字段的值,因此可以按预期工作。请参阅此处的fiddle

是否也可以添加HTML代码?将调试器放在onclick函数中,并在控制台中查看它您需要在单击时检索值,加载页面时不需要。是否也可以添加HTML代码?将调试器放在onclick函数中,并在控制台中查看调试器您需要在单击时检索值,而不是在加载页面时检索值。不准确。处理程序确实知道它们,但它们的值总是相同的。不准确。处理程序确实知道它们,但它们的值始终相同。如果这解决了您的问题,您介意接受这一正确答案吗?如果这解决了您的问题,您介意接受这一正确答案吗。