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 函数的消息框中合并“是”的操作?
如果我理解正确,你只是想要
<form action="/Config?pg=FIBiller&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&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&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 时,将执行所有删除链接。您也不希望生成的删除请求可添加书签,对吗?