2016-06-09 3 views
0

저는 순수한 자바 스크립트를 사용하고 있습니다. "onchange"이벤트가 발생할 때 함수가 첨부 된 체크 박스가 있습니다.코드에서 체크하지 않은 상태에서 체크 박스를 체크하면 onchange 함수가 호출됩니다.

자바 스크립트 코드에서 체크하고 선택을 취소 할 때 해당 함수를 호출하고 싶습니다.

키보드의 화살표 키를 사용하여 수동으로 선택하지 않으면 체크되고 선택되지 않지만 해당 기능이 호출되지 않습니다.

해당 함수를 호출 할 수있는 방법이 있습니까?

HTML의 DOM :

<input type="checkbox" onchange="hello();" id="myCheckBox"> 

자바 스크립트 :

document.getElementById("myCheckBox").checked = true; 
+0

당신이 당신의 코드를하시기 바랍니다 게시 할 수 있습니까? – DavidDomain

+0

죄송합니다. 질문을 편집하여 추가했습니다. –

+2

스크립트를 통해 확인란 상태가 변경되면이 이벤트가 발생하지 않습니다. 이 경우 이벤트 핸들러를 실행하려면 스크립트의 체크 박스 상태를 변경하는 부분에서 직접 이벤트를 트리거해야합니다. http://api.jquery.com/trigger/ – CBroe

답변

1

'onchange를'이벤트가 텍스트 상자와 선택 목록에서 사용하기위한 것입니다은 '온 클릭'이벤트를보십시오. 자바 스크립트 코드는 체크 박스 요소의 상태가 변경 될 때

How to trigger event in JavaScript?

1

이 핸들러 함수를 호출 :

당신이 유용 찾을 수있는 코드에서 이벤트를 발생합니다.

function toggle() { 
 
    document.getElementById("myCheckBox").checked = !document.getElementById("myCheckBox").checked; 
 
    hello(); //invoke the function here! 
 
} 
 

 
function hello() { 
 
    alert(document.getElementById("myCheckBox").checked) 
 
}
<input type="checkbox" onchange="hello();" id="myCheckBox"> 
 

 
<button onclick='toggle()'>Toggle</button>

+0

버튼이없고, UI 관련이 없습니다 –

+0

@ArianHosseinzadeh, 그건 단지 보여주기위한 것입니다 ... – Rayon

+0

나는이 기능을 직접 호출 할 수있는 권한이 없습니다. DOM 때문에 자연스럽게 호출되도록해야합니다. –

0

사용이 :

HTMLInputElement.prototype.check = function() { 
    if (this.checked !== null) { 
    this.checked = true; 
    this.onchange(); 
    } 
}; 

HTMLInputElement.prototype.uncheck = function() { 
    if (this.checked !== null) { 
    this.checked = false; 
    this.onchange(); 
    } 
}; 

document.getElementById("myCheckBox").check(); 
관련 문제