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");
%>
}
我的代码出了什么问题? 我做了一个确认对话框。 每当我单击"取消"按钮时,它都会将"确认"属性设置为"false"。 但是当我单击"确定"时,它在真实条件下执行了代码,但也在错误条件中执行了JSP代码。 它忽略该条件。 告诉我出了什么问题?
JSP 在 JavaScript 在浏览器上运行之前(甚至在发送到浏览器之前)在服务器上执行。
对于服务器端执行,JavaScript 被完全忽略。它只是输出的一部分,就像 HTML 一样。
服务器看到的只是:
jspOut.write("var answer = ......... ");
session.setAttribute("confirm", "true");
jspOut.write("} else if ..... ");
session.setAttribute("confirm", "false");
如您所见,这里根本没有条件执行。
如果你想从JavaScript与服务器交互,你必须发出一个新的请求来传输和接收数据。例如使用 Ajax。或者通过发布表单。