隐藏字段上的Dojo Onchange事件

Dojo Onchange event on hidden fields

本文关键字:Onchange 事件 Dojo 字段 隐藏      更新时间:2023-09-26

我有一个下拉菜单,可以更改也可以不更改隐藏字段的值。变化由计算函数决定。我想跟踪隐藏字段中的更改。如果有任何更改,我想选中一个复选框。

如何做到这一点?我无法更改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");  
       });          
});

我使用dojoquery是因为表单中有很多这样的隐藏字段,并且我必须监视所有字段的值变化。

*强调文本*我认为问题在于当您以编程方式更改隐藏字段的值时,"onchange"事件并没有触发。您可以在字段值更改的同时手动触发此事件

HTML:

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

脚本:

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);
})

Jsfidle示例:

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