Как запустить webFormClientValidate в порталах Dynamics 365

Чтобы выполнить оценку на последней странице портала, используя кнопку отправки, Microsoft предоставляет расширение для функции "webFormClientValidate", которое должна вызывать кнопка отправки: https://docs.microsoft.com/en-us/dynamics365/ взаимодействие с клиентами / порталы / добавить пользовательский javascript.

Я поместил этот код в свой последний шаг на портале:

console.log("alive");

if (window.jQuery) {
console.log("1");

    (function ($) {
        console.log("2");
        if (typeof (webFormClientValidate) != 'undefined') {
            console.log("3");
            var originalValidationFunction = webFormClientValidate;
            if (originalValidationFunction && typeof (originalValidationFunction) == "function") 
            {
                console.log("4");
                webFormClientValidate = function() 
                {
                    console.log("5");
                    originalValidationFunction.apply(this, arguments);
                    console.log("6");
                    // do your custom validation here

                    if (...) 
                    {
                        console.log("7 false");
                        return false;
                    }
                    // return false; 
                    // to prevent the form submit you need to return false
                    // end custom validation.

                    return true;
                };
            }
        }
    }(window.jQuery));
}

При загрузке страницы журнал выписывает: в живых 1 2 3 4

Нажатие кнопки отправки должно вызвать функцию "webFormClientValidate", но ничего не происходит. "5" не записывается в журнал. Кто-нибудь знает почему?

Обновление: после отладки создается впечатление, что страница не распознает "webFormClientValidate" вообще. Однако, просматривая элементы, появляется этот парень:

function webFormClientValidate() {
                            // Custom client side validation. Method is 
called by the next/submit button's onclick event.
                            // Must return true or false. Returning false 
will prevent the form from submitting.
                            return true;
                        }

Мое исследование показывает, что другие люди просто вставляют один и тот же фрагмент кода. Ведьма говорит мне, что это должно работать как-то: http://threads290.rssing.com/chan-5815789/all_p2645.html https://rajeevpentyala.com/2016/09/12/useful-jscript-syntaxes-adx-portal/ http://livingindynamics365.blogspot.com/2018/02/validating-user-input-in-crm-portals.html

0 ответов

Если вы используете форму Entity, используйте entityFormClientValidate на месте webFormClientValidate