2017-10-06 1 views
-2

내 응용 프로그램에서 버튼을 토글합니다.자바 스크립트 - 이벤트 수신기 청취

버튼을 켜기로 설정하면 값을 1로 설정하고 싶지 않으면 값을 null로 설정해야합니다. (0 = 비활성화 1 = 활성화) 나의 현재의 자바 스크립트 코드 그게 전부

을 :

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

없다? – Wouter

+0

** querySelector ** 대신 ** id **를 사용해보세요. 'element = document.getElementById (id);로 변경하고'id'를 버튼 하나로 설정하십시오. – ZombieChowder

+0

@ ZombieChowder - 문제는'document.getElementById'를 사용하는 코드입니다. 이 질문에서'document.querySelector' 만 사용하면됩니다. – Quentin

답변

1

내가 가리킨 이드가 존재하지 않았으므로 e이 요소의 스팬 요소. <input>이 아닌 요소의 경우 value 대신 innerHTML을 사용해야합니다. 은 "비활성화" "활성화"또는 ID를 가진 HTML 요소는

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