我正在尝试在提交表单数据之前显示一个确认对话框。我希望使用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方面我还不是一个新手(我避免像瘟疫一样避开它),我认为这是我需要实现的目标。任何帮助或指出正确的方向将不胜感激。
答案 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
处理程序