CRM - запуск по изменению формы - PullRequest
0 голосов
/ 08 марта 2019

В настоящее время я работаю над CRM с JavaScript, и я хотел бы вызвать событие onChange для всей формы, а не только для поля, я искал, но не смог найти решение для этого ... Знаете ли вы, как это сделать?

Ответы [ 2 ]

0 голосов
/ 19 марта 2019

Я бы использовал это и назвал бы для каждого атрибута:

https://docs.microsoft.com/en-us/dynamics365/customer-engagement/developer/clientapi/reference/attributes/fireonchange

0 голосов
/ 11 марта 2019

Если вы хотите обнаружить событие onChanage любого поля в форме, я думаю, что единственный поддерживаемый способ - добавить onChange в каждое поле формы.Но я знаю, что если у вас есть сотни полей, это может занять некоторое время :)

Неподдерживаемый способ - добавить пользовательский веб-ресурс html в форму с помощью javascript, например:
$( "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 '.Ура!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...