CRM-在表单上触发onChange

时间:2019-03-08 09:38:38

标签: javascript dynamics-crm

当前正在使用JavaScript进行CRM,我想在整个表单上触发onChange事件,而不仅仅是在字段上触发,我进行了搜索,但找不到解决方案.. 你知道这样做的方法吗?

2 个答案:

答案 0 :(得分:0)

如果要检测表单上任何字段的onChanage事件,我认为唯一受支持的方法是在表单上的每个字段上添加onChange。但是我知道,如果您有数百个字段,则可能需要一些时间:)

不支持的方法是使用javascript之类的形式在表单上添加自定义html网络资源:
$( "input[type='text']" ).change(function() {
somethingIsChanged=true;
});

准备选择器以检测所有CRM表单字段。不支持以这种方式在CRM表单上选择字段。

编辑

实际上,我在第一句话中部分错了。有一种很好而优雅的支持方法可以解决此问题。添加Javascript网络资源,例如:

function onPageLoadFunction()
{
    Xrm.Page.ui.controls.forEach(function (control, index) {

        switch (control.getControlType()) {
            case "standard":
            case "lookup":
            case "optionset":
                var attribute = control.getAttribute();

                if (attribute != null) {                    
                    attribute.addOnChange(openAlertOnChange);
                }
                break;
        }                
    });    
}

function openAlertOnChange()
{
    alert("ON CHANGE alert");
}

在表单设计器中,将函数“ onPageLoadFunction ”设置为在表单加载时被调用。如果指定类型的任何字段(标准,查找,选项集)发生更改,您将收到来自函数“ openAlertOnChange ”的警报。干杯!

答案 1 :(得分:0)