Вариант 4. Дополнительная валидация формы ----------------------------------------- Расширение :ref:`extfp-usecases-uc1-label`. Дополнительная валидация: значение поля «Итоговая сумма» должно быть не больше значения поля «Предварительная сумма». Иначе сразу по мере ввода некорректного значения поле подсвечивается красным и появляется оранжевая подпись под ним с текстом: Значение данного поля не должно превышать значения поля "Предварительная сумма" .. raw:: html Исходный код JavaScript и CSS формы аналогичны :ref:`extfp-usecases-uc1-label`. Исходный код JavaScript доп. ФЛК для варианта 4, который необходимо вставить во вкладку «Код скрипта» настроек компонента, соответствующему числовому полю «Итоговая сумма»: .. code-block:: javascript var sum1 = model.playerModel.getModelWithId("sum1"); function checkSumValue() { return model.getValue() !== null && parseInt(sum1.getValue()) < parseInt(model.getValue()); } var errorLabel = jQuery("
", {class: "asf-Label"}); errorLabel.css("color", "#ff9966"); errorLabel.html('Значение данного поля не должно превышать значения поля "Предварительная сумма"'); view.container.append(errorLabel); errorLabel.hide(); view.originalMarkInvalid = view.markInvalid; view.markInvalid = function () { view.originalMarkInvalid(); errorLabel.show(); }; view.originalUnmarkInvalid = view.unmarkInvalid; view.unmarkInvalid = function () { view.originalUnmarkInvalid(); errorLabel.hide(); }; sum1.on("valueChange", function () { view.checkValid(); }); model.on("valueChange", function () { view.checkValid(); }); model.originalErrors = model.getSpecialErrors; model.getSpecialErrors = function () { if (checkSumValue()) { return {id: model.asfProperty.id, errorCode: AS.FORMS.INPUT_ERROR_TYPE.valueTooHigh}; } else { return model.originalErrors(); } }