var answer = confirm("Do you want to save?");
alert(answer);
if(answer==true){
<%
session.setAttribute("confirm", "true");
%>
}else if(answer==false){
<%
session.setAttribute("confirm", "false");
%>
}
我的代码有什么问题吗?我做了一个确认对话框。每当我单击“取消”按钮时,它都会将“确认”属性设置为“假”。但是当我单击“确定”时,它执行了 true 条件内的代码,但也执行了 false 条件内的 jsp 代码。它忽略该条件。告诉我怎么了?
最佳答案
JSP 在 JavaScript 在浏览器上运行之前(甚至在它发送到浏览器之前)在服务器上执行。
对于服务器端执行,JavaScript 被完全忽略。它只是输出的一部分,就像 HTML 一样。
服务器看到的只是:
jspOut.write("var answer = ......... ");
session.setAttribute("confirm", "true");
jspOut.write("} else if ..... ");
session.setAttribute("confirm", "false");
如您所见,这里根本没有条件执行。
如果你想通过 JavaScript 与服务器交互,你必须发出一个新的请求来传输和接收数据。例如使用 Ajax。或者通过发布表格。
关于javascript - 如何阻止jsp执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29818990/