【发布时间】:2016-11-09 14:29:15
【问题描述】:
我正在向 CRM 2011 表单添加一些 JavaScript,但我看到了我不理解的行为。 (我已经从根本上简化了 这个例子来解决问题的核心。)
我有一个名为“new_myfield”的字段,它是单选按钮,我正在触发一个 JavaScript 函数 OnChange 将其设置为 false。 如果我使用以下脚本,一切正常,我可以一次又一次地运行脚本,并且每次将字段设置回 错误:
var myField = Xrm.Page.getAttribute("new_myfield");
myField.setValue(false);
当然,实际发生的是脚本触发了两次,因为当该字段设置为 false 时,它会再次触发 脚本,它再次将其设置为 false。我已通过在脚本中添加警报来验证这一点。
但我实际上只想在用户将字段设置为“true”时运行此脚本,所以我将其更改为:
var myField = Xrm.Page.getAttribute("new_myfield");
if (myField.getValue() == true) {
myField.setValue(false);
}
脚本按预期运行一次并将该字段设置为“false”,但下次我手动将单选按钮设置为“true”时,脚本不会运行。它甚至不火。这就像 onchange 事件处理程序没有识别出任何事情发生。只有当我手动设置按钮时 回到 'false' 脚本再次按预期运行。
就好像脚本需要运行两次(如第一个示例)才能使其工作。
有人知道为什么会这样吗?
【问题讨论】:
-
您是否尝试过在
if之前添加alert语句?也许代码正在触发,只是您的条件没有评估为true。
标签: javascript event-handling dynamics-crm-2011 onchange