JSP: подтвердите перед отправкой - PullRequest
0 голосов
/ 29 мая 2019

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

Веб-приложение на java и jsp.Я попробовал следующее, используя "onclick =", надеясь на простое решение, но безрезультатно:

Java: ReceiveAction.java

        public Resolution receiveInventory() {
             ...
             return new ForwardResolution(ADJUSTMENT);
        }

jsp: receive-action.jsp

        <button name="_eventName" value="receiveInventory" type="submit" class="btn btn-green disabler-ignore-readonly" onclick="javascript:return confirm('are you sure?');">Receive</button>

Проблема в том, что я могу получить диалоговое окно подтверждения с указанным выше кодом, но receiveInventory запускается, нажимаю ли я кнопку ok или отмену.Мне нужно, чтобы он срабатывал только тогда, когда я ударил в порядке.Я чувствую, что я очень хорошо разбираюсь в java и jsp, но я не новичок, когда дело доходит до javascript (я избегаю его как чума), и я думаю, что это то, что мне нужно, чтобы осуществить это.Любая помощь или указание в правильном направлении будет принята с благодарностью.

1 Ответ

0 голосов
/ 30 мая 2019

Ваша кнопка относится к типу "submit", поэтому она наиболее вероятно вызывает событие onSubmit формы при нажатии, независимо от вашего собственного обработчика кликов.Кроме того, подтверждение возвращает логическое значение, которое можно использовать, чтобы узнать, выбрали ли они кнопку «ОК».

function checkSubmission() {
    let confirmed = confirm("Are you sure?");

    if (confirmed) {
         // Submit your form....
         recieveInventory(); // document.getElementById('myFormId').submit();
    } else {
        // Handle cancel here if needed
    }
}

<button name="_eventName" value="receiveInventory" type="button" class="btn btn-green disabler-ignore-readonly" onclick="javascript:return checkSubmission();">Receive</button>

В идеале вам, вероятно, следует просто установить обработчик submit формы для вызова checkSubmission.Тогда вам совсем не нужно устанавливать обработчик click на кнопку

...