Редактируемая подсетка, устанавливающая требуемое поле из-за сбоя события onchange

#javascript #dynamics-crm

#javascript #динамика-crm

Вопрос:

Мы использовали этот фрагмент для редактируемой подсети в форме, в то время как одно из onchange событий триггера атрибута, запускающее эту функцию, и необходимые поля были отмечены как требуемые до сих пор. Таким образом, пользователи не могут сохранить редактируемую строку подсети, и автосохранение также будет заблокировано с уведомлением.

Внезапно он перестал работать, и во время отладки ошибок или исключений нет, хотя поле помечено как обязательное для onchange функции — пользователи все еще могут сохранить запись без значения в обязательном поле. Понятия не имею, почему это изменение поведения наблюдается сейчас.

Кто-нибудь еще сталкивался с этой проблемой и каким-либо обходным путем для этого?

 function ReasonChange(eContext) {
    debugger;
    // get the attribute which fired the onchange.
    var reasonAttr = eContext.getEventSource();

    // get the container for the attribute.
    var attrParent = reasonAttr.getParent();

    // get the value of the reason.
    var reason = reasonAttr.getValue(); 

    if (reason != null) {

        // var field1 Attribute
        var field1 = attrParent.attributes.get("new_followupdate");

        //Callback
        if (reason[0].id == "{33E9E459-5A8B-EA11-A812-000D3A5A17E3}") {

            // set field as mandatory.
            field1.setRequiredLevel("required");
        }
        else {

            //clear field value
            field1.setValue(null);

            // set field as mandatory.
            field1.setRequiredLevel("none");
        }
}
  

Ответ №1:

Один из способов, о котором я мог бы подумать сейчас, — добавить код в событие Onsave и проверить, содержит ли значение поля данные, если не отображается сообщение об ошибке.

Кроме того, вы проверили в другом браузере, такое же поведение или другое?

Пожалуйста, отметьте мой ответ подтвержденным, если я был полезен

Комментарии:

1. да, спасибо, такой же опыт и в Edge. При сохранении немного сложно перебирать все строки, есть ли у вас какой-либо рабочий пример кода. Пробовал также использовать бизнес-правило, происходит что-то странное, но не уверен, почему это так сложно. Планирую перейти на плагин в качестве последнего средства, вместо того, чтобы тратить больше времени на это/