JSP:提交前先确认

时间:2019-05-29 20:54:56

标签: javascript java jsp submit confirm

我正在尝试在提交表单数据之前显示一个确认对话框。我希望使用ok弹出对话框,并在ok提交数据并取消的情况下取消操作,而不执行任何操作。事实证明,这比我想象的要难。

该Web应用程序使用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。我需要它仅在单击确定时才触发。我觉得我非常精通Java和jsp,但是在javascript方面我还不是一个新手(我避免像瘟疫一样避开它),我认为这是我需要实现的目标。任何帮助或指出正确的方向将不胜感激。

1 个答案:

答案 0 :(得分:0)

您的按钮是一种“提交”类型,因此无论您自己的单击处理程序如何,它很可能在被单击时触发表单的onSubmit事件。另外,confirm返回一个布尔值,您可以用来判断他们是否选择了“确定”按钮。

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处理程序