Вопрос или проблема
В Oracle Apex, когда я нажимаю кнопку несколько раз, индикатор прогресса показывает несколько индикаторов прогресса. Как можно контролировать это, чтобы показывался только один? При каждом нажатии их количество умножается. Спасибо заранее!
Как упомянуто выше, я хочу видеть только один индикатор, даже если я нажимаю несколько раз…
Вы можете отключить кнопку после нажатия на нее или использовать глобальную переменную, чтобы определить, была ли кнопка уже нажата.
Ответ или решение
Для решения проблемы с несколькими индикаторами прогресса в Oracle APEX при многократном нажатии на кнопку, вы можете воспользоваться несколькими подходами. Основные из них заключаются в том, чтобы либо отключить кнопку после первого нажатия, либо использовать глобальную переменную для отслеживания состояния кнопки.
Подход 1: Отключение кнопки
Вы можете отключить кнопку сразу после нажатия, что предотвратит повторные нажатия до завершения выполнения операции. Для этого добавьте JavaScript код, который отключает кнопку при нажатии:
document.getElementById('YOUR_BUTTON_ID').disabled = true;
Важно, чтобы данный код вызывался до запуска операции, связанной с отображением индикатора прогресса.
Как только операция завершена, вы можете снова включить кнопку (если это необходимо) или оставить её отключенной, в зависимости от вашего сценария.
Подход 2: Использование глобальной переменной
Другой вариант — использовать глобальную переменную, чтобы проверить, было ли уже нажато на кнопку. Пример кода:
var buttonClicked = false;
function handleButtonClick() {
if (!buttonClicked) {
buttonClicked = true;
// Включение индикатора прогресса
apex.util.showProgressIndicator();
// Ваш код для выполнения операции
// После завершения операции
buttonClicked = false;
// Выключение индикатора прогресса (если необходимо)
apex.util.hideProgressIndicator();
}
}
Затем просто вызовите handleButtonClick()
после нажатия на вашу кнопку.
Заключение
Оба подхода позволят контролировать отображение индикатора прогресса, предотвращая дублирование при многократном нажатии на кнопку. Выбор метода зависит от ваших предпочтений и требований. Убедитесь, что ваша логика корректно обрабатывает состояние кнопки и индикатора прогресса для лучшего пользовательского опыта.