Включает ли Oracle Apex 4 следующие функции AJAX? (т.е. без разработчика, пишущего Javascript) - PullRequest
1 голос
/ 01 июня 2010
  1. Убедитесь, что на стороне клиента заполнены любые 2 поля из трех, прежде чем разрешить отправку формы
  2. Показать / скрыть поля сбора данных на основе значения флажка (все на стороне клиента)?

1 Ответ

2 голосов
/ 01 июня 2010

Apex 4.0 имеет новую функцию под названием Динамические действия , которая может выполнять обработку Javascript и AJAX, которую вы определяете декларативно, то есть без необходимости писать (или много) Javascript.

1) Проверьте на стороне клиента, что любые 2 из трех полей были заполнены, прежде чем разрешить отправку формы

Вы можете создать динамическое действие, которое запускается при отправке страницы, выполняет тест и в зависимости от того, возвращает ли тест значение ИСТИНА или ЛОЖЬ, отменяет отправку. Тем не менее, исходя из моего понимания динамических действий (которые вы можете попробовать самостоятельно на http://tryapexnow.com) в этом примере, условие для тестирования будет выражением Javascript, подобным этому:

($v('P1_FIELD1') != '' && $v('P1_FIELD2') != '')
|| ($v('P1_FIELD1') != '' && $v('P1_FIELD3') != '')
|| ($v('P1_FIELD2') != '' && $v('P1_FIELD3') != '')

(Надеюсь, у меня правильный синтаксис.)

2) Показать / скрыть поля сбора данных на основе значения флажка (все на стороне клиента)

Это можно сделать без написания Javascript, используя Dynamic Action. Предполагая, что значение флажка равно 'Y', если установлено, атрибуты динамического действия будут выглядеть примерно так:

Event:       Change
Item:        P1_CHECKBOX
Condition:   Equal To
Value:       Y
True Action: Hide Item(s)
  Items: P1_FIELD1, P1_FIELD2, P1_FIELD3
False Action: Show Item(s)
  Items: P1_FIELD1, P1_FIELD2, P1_FIELD3
...