2014-09-26 51 views
1

我有一個下拉列表,它可能會或可能不會更改隱藏字段的值。該更改由計算功能決定。 我想跟蹤隱藏字段中的更改。如果有任何改變,我想檢查一個複選框。隱藏字段上的Dojo Onchange事件

這是如何實現的? 我無法更改我的HTML。因此,一切都在JS中處理。

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

在Java腳本:

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/