隐藏字段上的 Dojo Onchange 事件

Posted

技术标签:

【中文标题】隐藏字段上的 Dojo Onchange 事件【英文标题】:Dojo Onchange event on hidden fields 【发布时间】:2014-09-26 08:59:06 【问题描述】:

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

如何做到这一点? 我无法更改我的 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是因为表单中有很多这样的隐藏字段,我要监控所有的值变化。

【问题讨论】:

【参考方案1】:

*强调文本*我认为问题在于当您以编程方式更改隐藏字段的值时“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/

【讨论】:

以上是关于隐藏字段上的 Dojo Onchange 事件的主要内容,如果未能解决你的问题,请参考以下文章

以编程方式更改值时触发Dojo Select onChange事件触发

尝试使用 struts 中的 ajax 更新 jsp 页面上的内容时出现问题(触发 onChange 事件时)

获取 onChange 事件类型

使用选择框的索引值更新隐藏文本框的 onchange 事件语法

dojo的on函数(以前的dojo.connect)

Worklight/Dojo - 键盘隐藏输入字段