2017-10-06 186 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