2014-09-26 3 views
1

숨겨진 필드의 값이 변경 될 수도 있고 변경되지 않을 수도있는 드롭 다운이 있습니다. 변경은 계산 기능에 의해 결정됩니다. 숨겨진 필드의 변경 내용을 추적하고 싶습니다. 변경 사항이있는 경우 확인란을 선택하고 싶습니다.숨겨진 필드의 Dojo Onchange 이벤트

어떻게 달성 할 수 있습니까? 내 HTML을 변경할 수 없습니다. 따라서 모든 것이 JS에서 처리됩니다. 자바 스크립트에서

<input type="hidden" name="03Text" value=""> 

:

var w = dojo.query('[type$=hidden]'); 
w.forEach(function(node, index, nodelist){ 
     dojo.connect(node , "onchange", function(evt){     
     controlapiObj.setControlAttribute(payload.srcFormId, payload.outputParams[0], true, "checked"); 
     });   
}); 

형태로 많은 숨겨진 필드가 있기 때문에 내가 dojo.query을 사용하고, 나는 모든의 값의 변화를 모니터링 할 수 있습니다.

답변

0

* 강조 텍스트 * 프로그래밍 방식으로 숨겨진 필드의 값을 변경하면 "onchange"이벤트가 발생하지 않는다고 생각합니다. 필드의 값이 이와 같이 변경 될 때 수동으로이 이벤트를 트리거 할 수 있습니다. 내 예는 1.10 도장 사용하고 기능에 대한

HTML :

<input type="hidden" name="03Text" value="1"> 
<input type="hidden" name="03Text" value="2"> 
<input type="hidden" name="03Text" value="3"> 

SCRIPT : 예와

require(["dojo/query", "dojo/on", "dojo/domReady!"], function(query, on){ 

var w = query('[type$=hidden]'); 
w.forEach(function(node, index, nodelist){ 
    on(node, "onchange", function(){ 
     console.log(node); 
    })   
}); 

var event = new Event('onchange'); 
w[0].dispatchEvent(event); 
w[1].dispatchEvent(event); 
w[2].dispatchEvent(event); 

}) 

Jsfiddle :

http://jsfiddle.net/kagant15/ay1dzqqg/