繁体   English   中英

当更改的字段没有失去焦点但表单已保存时触发 onChange

[英]Fire onChange when a changed field has not lost focus, but form was saved

CRM 2015(可能还有其他版本)似乎有如下错误:

  1. 使用onChange处理程序注册字段。
  2. 用户更改此字段,并且:
  3. 用户立即点击保存。 也就是说,在单击保存按钮之前,用户既不按下 Enter 键也不单击表单上的某处来明确地松开焦点。

结果是不会触发此字段的onChange处理程序。

如何以受支持的方式触发未onChange处理程序?

如果存在则调用它:

 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>

接得好。 这应该通过用户培训来解决。 否则,我们通过捕获和完成必须规避preventDefaultonSave事件,检查isDirty属性,然后fireOnchange然后明确的保存事件触发。

正如文档所说,焦点必须丢失才能触发onChange

OnChange 事件发生在以下情况:
• 表单域中的数据已更改且焦点丢失。

我错了, onChange确实触发了。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM