javascript - 隐藏字段上的 Dojo Onchange 事件

标签 javascript html events dojo nodelist

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

如何实现这一目标? 我无法更改我的 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是因为表单中有很多这样的隐藏字段,我必须监视所有值的变化。

最佳答案

*强调文本*我认为问题在于当您以编程方式更改隐藏字段的值时,“onchange”事件不会触发。您可以在字段值发生更改的同时手动触发此事件,如下所示。我的示例使用 dojo 1.10 和 on 函数

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

})

Jsfiddle 示例:

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

关于javascript - 隐藏字段上的 Dojo Onchange 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26055769/

相关文章:

javascript - 从网站抓取纯文本并显示在另一个网站上

javascript - 多个按钮在同一个窗口上操作

javascript - 为什么scroll事件不冒泡?

jquery - 将更改事件绑定(bind)到每个 DataTables 行中的复选框

c# - 将 WPF 事件映射到 Windows 窗体事件

javascript - 滚动脚本实现不起作用

html - bootstrap 中一个接一个的页脚元素

javascript - 如何从脚本内获取 document.currentscript 并指向parentNode

javascript - 更改指针光标的 CSS URL(使用 Javascript)

javascript - AngularJS 指令调用另一个指令未正确传递数据以使用 $compile 进行渲染