CRM 2015(可能还有其他版本)似乎存在如下错误:
onChange
处理程序注册了一个字段。结果是未触发此字段的onChange
处理程序。
如何以受支持的方式触发未触发的onChange
处理程序?
答案 0 :(得分:0)
调用它(如果存在):
document.getElementById("field1").onchange=function() { console.log("change handler called") }
document.getElementById("form1").onsubmit=function() {
this.querySelectorAll("input").forEach(function(fld) {
if (fld.onchange) fld.onchange();
})
}
<form id="form1">
<input type="text" id="field1" />
<input type="submit" />
</form>
答案 1 :(得分:0)
好收获。这应该通过用户培训来解决。否则,我们必须通过捕获并完成preventDefault
事件的onSave
,检查属性isDirty
,然后检查fireOnchange
,然后显式保存事件触发器来进行规避。
正如documentation所说的那样,onChange
必须失去焦点才能触发:
在以下情况下会发生OnChange事件:
•表单字段中的数据已更改,并且焦点丢失。
答案 2 :(得分:0)
我错了,onChange
确实开火了。