2012-05-09 5 views
1

일부 스크립트가 선택/라디오/체크 상자를 변경하는 상황이 발생했습니다. 그건 변화 사건을 일으킨다. 그러나 사용자가 요소를 변경했다는 내용의 이벤트가 별도로 필요합니다. 그리고 분명히 스크립트에서 변경이 발생하면 사용자 변경으로 등록됩니다.자바 스크립트 : 사용자 또는 스크립트에 의해 발생하는 변경 이벤트를 차별화하십시오.

선택/라디오/체크 상자의 값을 변경할 때 스크립트가 변경 이벤트를 시작하지 못하게 할 방법이 있습니까?

+0

코드 도움이 될 수를 표시, 변경 이벤트가 발생하지 않는다해서, 당신은 거기 뭐하는거야? – gdoron

+0

'$ ("select") .val ("2");가 실행되면 변경 이벤트가 발생합니다. – MrJD

+0

구문 오류가 있기 때문이 아니라 변경 이벤트가 발생하지 않습니다. – gdoron

답변

4

사용 jQuery.trigger() 및 코드에서 이벤트를 트리거 할 때 추가 매개 변수를 전달합니다. 예를 들어

:

$('select').bind('change', function(e, isScriptInvoked) { 
    if (isScriptInvoked === true) { 
     // some code for when artificial 
    } else { 
     // some code for when organic 
    } 
}); 

// Trigger the event. 
$('select').trigger('change', [true]); 
0

시도 :

function changeEvent(){ 
    if(this.type.toLowerCase()=='select' || this.type.toLowerCase()=='radio' || this.type.toLowerCase()=='checkbox') 
     return false; 
    else{ 
     //Your code here 
    } 
} 
+0

언급 된 모든 유형이 변경 이벤트를 발생시키지 못하도록하지 않겠습니까? – MrJD

+3

나는 그것이 OP 질문에 대답하지 않는다고 거의 확신한다. plz가 다시 읽었다. – gdoron

+0

그는 onchange 이벤트를 방지하기를 원합니다. onchange 이벤트에 의해 호출되는 함수 인 changeEvent는 이벤트를 발생시킨 요소의 유형이 select/radio/checkbox 중 하나인지 확인한 후 select/radio/checkbox 중 하나 일 경우 false를 반환하고 코드를 실행하지 않습니다. –

관련 문제