.jsp 中的确认删除

Oak*_*ork 2 javascript confirm jsp

我希望对删除按钮进行确认,并尝试在一行中完成所有操作......这是没有删除确认的常规 onClick 事件:

onClick='this.form.action="/Config?pg=FIBiller&cmd=delete";'    
Run Code Online (Sandbox Code Playgroud)

我在网上发现可以这样实现确认删除:

"return confirm('Are you sure you want to delete?')"
Run Code Online (Sandbox Code Playgroud)

如何将其合并到我的 onClick 事件中,使其成为一行,不想使用更多 javascript?如果我必须这样做,那么我将如何在 javascript 函数的消息框中合并“是”的操作?

Bal*_*usC 6

如果我理解正确,你只是想要

<form action="/Config?pg=FIBiller&amp;cmd=delete">
    <input type="submit" value="delete" onclick="return confirm('Are you sure you want to delete?')" />
</form>
Run Code Online (Sandbox Code Playgroud)

或者,如果由于某些不清楚的原因(可能是设计不好?),您真的无法更改表单,那么您需要引入if-else如下块,它会更改表单的确认操作和false取消返回。

<input type="submit" value="delete" onclick="if (confirm('Are you sure you want to delete?')) form.action='/Config?pg=FIBiller&amp;cmd=delete'; else return false;" />
Run Code Online (Sandbox Code Playgroud)

注意:如果要添加更多调用或要提高可读性,请引入大括号:

<input type="submit" value="delete" onclick="if (confirm('Are you sure you want to delete?')) { form.action='/Config?pg=FIBiller&amp;cmd=delete'; } else { return false; }" />
Run Code Online (Sandbox Code Playgroud)

具体问题无关,我建议摆脱,cmd=delete因为您也可以通过为删除按钮指定一个名称来检查它,以便它也将作为请求参数发送:

<input type="submit" name="delete" value="delete" ...>
Run Code Online (Sandbox Code Playgroud)

如果它被按下,你可以在 JSP/Servlet 端进行如下检查:

if (request.getParameter("delete") != null) {
    // Delete button is pressed.
}
Run Code Online (Sandbox Code Playgroud)

顺便说一句,通过 GET 删除是一个坏主意。而是使用POST。否则,当搜索机器人出现在您的网站并抓取所有 GET 链接/操作而不执行 JavaScript 时,将执行所有删除链接。您也不希望生成的删除请求可添加书签,对吗?