CRM 2015 setValue()触发onChange

时间:2015-10-28 11:44:06

标签: javascript dynamics-crm dynamics-crm-2015

如果confirm()命令返回false,我正在尝试使用CRM 2015中内置的setValue()函数将字段更改回null。触发confirm()的字段也是我尝试设置为null的字段。

代码如下:

if (optionSetField.getValue() == 805430000 /*YES*/) {

        var tempBoolean = confirm("Test", "test Title")
        if (tempBoolean == false) {

            optionSetField.setValue(null)
        }

我尝试设置为null的字段是一个选项设置字段,其中“是”和“否”作为可用选项。我发现这更适合在一个字段上使用,因为它意味着我不需要默认值。

在代码触发并且用户单击“取消”时,setValue(null)会触发onChange事件,尽管该字段应该设置为null,但要求再次确认。有什么我做错了或这是一个潜在的错误?对于我正在做的事情,还有其他建议吗?

根据Microsoft技术文档,setValue()不应该触发onChange事件,但显然情况并非如此。任何人的见解都会有所帮助!

请参阅此处了解文档:https://msdn.microsoft.com/en-us/library/gg334409.aspx#BKMK_setValue

2 个答案:

答案 0 :(得分:0)

您应该使用confirmDialog,因为它是基于回调的,它应该允许字段正确更新。

Xrm.Utility.confirmDialog(message, yesCallback, noCallback)

所以喜欢这个

if (optionSetField.getValue() === 805430000) {
    Xrm.Utility.confirmDialog("Test", function(){
        optionSetField.setValue(null);
    });
}

这也适用于平板电脑(另一方面,确认不会)

答案 1 :(得分:0)

我有CRM 2015 U1 Turbo表单触发onchange事件,当它不应该根据setValue文档。 CRM 2016 Update 1似乎已经为我解决了这个问题,尽管我无法在Microsoft的支持文档中的任何位置找到错误修复。

这是主动连接案例:https://connect.microsoft.com/dynamicssuggestions/feedback/details/2527691