Двойной вызов функции
Всем доброго вечера. Опять нуждаюсь в Вашем совете.
В срм 2013 и срм 2015 (не знаю как такое прошляпил) заметил такую особенность.
Пример:
onLoad = function(){
Xrm.Page.getAttribute(name).addOnChange(getNameValue);
Xrm.Page.data.entity.addOnSave(saveFunction);
}
getNameValue = function(){
alert(Xrm.Page.getAttribute(name).getValue());
}
saveFunction = function(){
alert("!!!!!!");
}
И так, в чем вопрос.
Я не вешаю каждую функцию на отдельное событие. Завешиваю только функцию onLoad на загрузку формы. Все остальные обработчики цепляются в самой функции. И все отлично работает, но вот на что наткнулся. Когда создаем новую запись, и сохраняем ее не закрывая , то выполняется функция saveFunction, что логично, но почему то после сохранения, повторно отрабатывает функция onLoad и завешивает по еще одному обработчику на поле "name" и на сохранение формы. Что приводит к двойному вызову функций (обеих) при дальнейшем изменении поля и сохранении формы.
НО когда запись сразу закрыть (после первого сохранения) а потом открыть повторно, такого артефакта не наблюдается.
Кто нибудь сталкивался с подобным??? Буду очень благодарен за совет, а то уж сегодня всю голову себе проел этим.
Спасибо!
|