功能不起作用,与输入连接

时间:2013-06-04 13:35:31

标签: javascript

我已经尝试过一切。我不知道该怎么办。它无法正常工作

function load() {
if(acc == "a")
var d = document.getElementById('sn');
    d.style.display='block';
var b = document.getElementById('neas');
    b.style.display='none'; 
if(acc == "n")
var d = document.getElementById('sn');
    d.style.display='none';
var b = document.getElementById('neas');
    b.style.display='block'; }

我的头:

<script language="JavaScript">
day = new Date(); 
hour = day.getHours();
if (hour>=3 && hour<2)
    acc = "a";
        else { acc = "n";  } 
</script>
<script language="JavaScript">
function load() {
    var d = document.getElementById('sn');
    var b = document.getElementById('neas');
    if(acc == "a") {
        d.style.display='block';
        b.style.display='none'; 
    } else if(acc == "n") {
        d.style.display='none';
        b.style.display='block';
    }
}
</script>

我的身体:

<input type="password" maxlength="20" id="sn" style="width: 180px; height: 25px; background-image: url(bginput.gif); border:0; padding-left: 5px; padding-right: 5px; color: #0099cc; text-align: center;" value="">
<input type="text" id="neas" style="width: 180px; height: 25px; background-image: url(bginput.gif); border:0; padding-left: 5px; padding-right: 5px; color: #0099cc; text-align: center;" value="You are unable to enter." readonly>

对不起家伙们提出愚蠢的问题,我是JS的初学者。

4 个答案:

答案 0 :(得分:2)

替换if(acc = "a")

if(acc == "a")

=是赋值运算符

其中==是比较运算符

   function load() {
     var d = document.getElementById('sn');
    var b = document.getElementById('neas');

    if (acc = "a") {

        d.style.display = 'block';    
        b.style.display = 'none';
    }

    if (acc = "n") {    
        d.style.display = 'none';        
        b.style.display = 'block';
    }
}

答案 1 :(得分:1)

您有一些语法错误。你似乎缺少一些大括号,比较运算符也应该是==而不是=。尝试:

function load() {

    if (acc == "a") {
        var d = document.getElementById('sn');
        d.style.display = 'block';
        var b = document.getElementById('neas');
        b.style.display = 'none';
    }

    if (acc == "n") {
        var d = document.getElementById('sn');
        d.style.display = 'none';
        var b = document.getElementById('neas');
        b.style.display = 'block';
    }

}

编辑:

你的逻辑似乎也存在差距。 acc从哪里获得价值?此外,您可以设置对象db 一次,然后在if语句中只更改其显示属性,如下所示:

function load() {

    var d = document.getElementById('sn');
    var b = document.getElementById('neas');

    if (acc = "a") {            
        d.style.display = 'block';            
        b.style.display = 'none';
    }    
    if (acc = "n") {    
        d.style.display = 'none';        
        b.style.display = 'block';
    }

}

答案 2 :(得分:1)

请务必在if中附上{}条款。在比较时也使用==而不是==是一个赋值运算符,因此不会传递if子句。

 function load() {
    var d = document.getElementById('sn');
    var b = document.getElementById('neas');

    if(acc == "a"){
      d.style.display='block';
      b.style.display='none'; 
    }

    else if(acc == "n"){          
      d.style.display='none';          
      b.style.display='block';
   } 
};

答案 3 :(得分:0)

你会看到缩进的第一个问题:你错过了一些块分隔符。

function load() {
    var d = document.getElementById('sn');
    var b = document.getElementById('neas');
    if (acc == "a") {
        d.style.display='block';
        b.style.display='none'; 
    } else if (acc == "n") {
        d.style.display='none';
        b.style.display='block';
    }
}

正如PSR所见,您还使用了=而不是==。

我还更改了代码以重用元素声明(尝试DRY),else if让JS引擎避免无用的测试。