У меня есть два поля, которые используют одну и ту же функцию (называемую событием OnChange
), интересно, есть ли опция передать значение поля функции javascript (для проверки) без использования XRM.
Напишите функцию с Xrm.Page.getAttribute("field").getValue();
- единственный вариант, который у меня есть?
Должен ли я писать две разные функции для двух разных полей, которые вызывают одну и ту же функцию?
С точки зрения управления формой CRM вы можете иметь определенную библиотеку, которая содержит ниже общей функции.
function generic_onchange(execContext){
var myControl = execContext.getEventSource().getName();
var myControlValue = execContext.getEventSource().getValue();
}
Когда вы настраиваете событие onchange
для обоих элементов управления с помощью указанной функции, установите флажок "Пропустить контекст выполнения в качестве первого параметра".
Обновить:
Когда addOnChange
используется для присоединения функции к событию, контекст выполнения передается по умолчанию в качестве первого параметра.
Функция будет добавлена в конец конвейера обработчика событий. Контекст выполнения автоматически устанавливается как первый параметр, переданный обработчику события.
Если я получу ваш вопрос правильно, это может быть то, что вы ищете:
function eventHandler(obj) {
alert(obj.value);
}
<input type="text" placeholder="one" onChange="eventHandler(this)">
<input type="text" placeholder="two" onChange="eventHandler(this)">
this
в качестве аргумента функции onChange. Затем ключевое словоthis
будет ссылаться на элемент, на котором произошло изменение.