Я работаю над приложением Oracle APEX, где мне нужно динамически форматировать вводимые пользователем данные в элементе выбора даты. Желаемое поведение:
Когда пользователь вводит 20022025 (например), элемент должен автоматически переформатировать его на 20.02.2025 (т. е. ДД.ММ.ГГГГ) при потере фокуса.Если дата выбрана с помощью средства выбора даты, значение должно остаться неизменным.
Маска формата для средства выбора даты уже установлена на ДД.ММ.ГГГГ.
Что я пробовал:
//PL/SQL Dynamic Action
declare
begin
SELECT TO_CHAR(TO_DATE(:BIRTH_DATE, 'DDMMYYYY'), 'DD.MM.YYYY')
INTO :BIRTH_DATE
FROM DUAL;
end;
//PL/SQL with Conditional Formatting
declare
v_formatted_date varchar2(10);
begin
if regexp_like(:BIRTH_DATE, '^\d{8}$') then
v_formatted_date := substr(:BIRTH_DATE, 1, 2) || '.' ||
substr(:BIRTH_DATE, 3, 2) || '.' ||
substr(:BIRTH_DATE, 5, 4);
end if;
:BIRTH_DATE:= v_formatted_date;
end;
//JavaScript Dynamic Action
var pid = $(this.triggeringElement).attr("id");
var value = apex.item(pid).getValue();
console.log("value:", value);
if (/^\d{8}$/.test(value)) {
var formattedValue = value.substring(0, 2) + '.' +
value.substring(2, 4) + '.' +
value.substring(4);
console.log("Formatted value:", formattedValue);
apex.item(pid).setValue(formattedValue);
}
//Set Value Action with PL/SQL Function Body
declare
begin
IF REGEXP_LIKE(:BIRTH_DATE, '^\d{8}$') THEN
SELECT TO_CHAR(TO_DATE(:BIRTH_DATE, 'DDMMYYYY'), 'DD.MM.YYYY')
INTO :BIRTH_DATE
FROM DUAL;
end if;
end;
Подробнее здесь: https://stackoverflow.com/questions/793 ... datepicker
Oracle APEX динамически устанавливает значение элемента в средстве выбора даты ⇐ Javascript
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение