Oracle Apex 5.1 - Как динамически показать / скрыть обязательный символ '*' в текстовом поле в зависимости от конкретного условия - PullRequest
1 голос
/ 28 марта 2019

У меня есть страница с двумя элементами:

  • первый элемент - это «список выбора» с двумя возможными строковыми значениями («Выбор строки 1», «Выбор строки 2»);
  • простое текстовое поле, для которого я применил Template = 'Required' в разделе Apperancece элемента

Итак, когда страница загружена, приложение отображает симпатичный символ '*', чтобы подчеркнуть, что значение для текстового поля является обязательным.

И вот проблема: Мне нужно скрыть символ «*», когда пользователь выбирает строку «String choice 1» в списке выбора, тогда как мне нужно показать его снова, когда пользователь выбирает строку «String choice 2» в списке выбора.

Другими словами, значение для текстового поля требуется только тогда, когда пользователь выбирает «Выбор строки 2» в элементе списка выбора.

В этом сценарии, поскольку символ '*' не является отдельным элементом страницы, для которого можно установить «условие на стороне сервера», следовательно, я не знаю, как получить этот результат.

Может ли кто-нибудь мне помочь? Заранее спасибо, С наилучшими пожеланиями

Ответы [ 3 ]

1 голос
/ 29 марта 2019

Я не верю, что есть какой-то встроенный способ сделать это. Я сделал нечто подобное:

  1. Создание пользовательской функции Javascript, которая принимает в качестве параметра идентификатор элемента страницы Apex. Функция находит метку для этого элемента и делает любые изменения стиля, необходимые для того, чтобы пометить ее как обязательную / не обязательную.
  2. Создайте динамическое событие в вашем приложении с событием Change и вашим списком выбора в качестве элемента, который инициирует событие. Действие события будет исполнять Javascript, а JS для выполнения будет функция, которую вы создали в (1).

Изменения стиля в (1) будут зависеть от конкретной темы шаблона Apex, который вы используете, поэтому я не могу быть более конкретным. Я думаю, что я использовал немного более старый, и это включало добавление <img> перед текстом метки. Для других шаблонов может понадобиться добавить класс к метке или что-то в этом роде. Я думаю, что в этом случае найти метку для элемента страницы было так же просто, как с помощью селектора jQuery #P1_ITEM_LABEL.

Все, что это делает, это изменяет стиль метки, чтобы он указывал пользователю, что поле является обязательным или нет. Это на самом деле не навязывает это. Вы также захотите добавить проверку того, что пользователь выбрал значение, и сделать его условным, чтобы оно выполнялось, когда поле действительно требуется.

0 голосов
/ 29 марта 2019

Одним из предложений является использование APEX API для прагматической установки требуемого свойства для текстового поля.

0 голосов
/ 28 марта 2019

вы можете попробовать приведенный ниже код в динамическом действии.Надеюсь, это хорошо работает.

$('#P1_TEXT').attr("required", "true");
...