2017-10-06 121 views
-2

我在我的应用程序中有一个开关按钮。Javascript - 检查事件监听器

如果按钮处于打开状态,我希望该值设置为1,否则值应该为空。 (0 =停用,1 =激活)

这就是我目前的javascript代码:

var checkbox = document.querySelector("input[name=checkbox]"); 

checkbox.addEventListener('change', function() { 
    if(this.checked) { 
     document.getElementById("activate").value = '1'; 
    } else { 
     document.getElementById("deactivate").value = '0'; 
    } 
}); 

而这就是我的切换按钮:

<div class="toggle"> 
    <label> 
     <input id="CheckAcitavtion" name="checkbox" type="checkbox"> 
     <span class="slider"></span> 
    </label> 
</div> 

但在那一刻,我切换按钮以下错误显示:

Uncaught TypeError: Cannot set property 'value' of null at HTMLInputElement.

+4

有一个与 “激活” 或 “停用” 号html元素? – Wouter

+0

尝试使用** id **而不是** querySelector **。将其更改为'element = document.getElementById(id);'并将'id'设置为按钮1。 – ZombieChowder

+0

@ ZombieChowder - 问题在于使用'document.getElementById'的代码。在问题中唯一使用'document.querySelector'是绝对好的。 – Quentin

回答

1

您指向的id不存在,所以我gav e span元素这个id。对于非<input>的元素,您还应该使用innerHTML而不是value

var checkbox = document.querySelector("input[name=checkbox]"); 
 

 
checkbox.addEventListener('change', function() { 
 
    if(this.checked) { 
 
     document.getElementById("checkValue").innerHTML = '1'; 
 
    } else { 
 
     document.getElementById("checkValue").innerHTML = '0'; 
 
    } 
 
});
<div class="toggle"> 
 
    <label> 
 
    <input id="CheckAcitavtion" name="checkbox" type="checkbox"> 
 
    <span id="checkValue">0</span> 
 
    </label> 
 
</div>

+0

这正是我想要的!谢谢! – Trayer