Если вы хотите обнаружить событие 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 '.Ура!