不太明白这个问题,自己随便写了个测试页面:在session中放一个值,通过javascript的check()函数去比较输入的值与session存的值是否相同,感觉上用<%=session.getAttribute("name")%>这样应该对了,但是页面就是直接跳转,郁闷啊,高手指点下
<%@ page language="java" import="java.util.*" pageEncoding="GBK"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
  <%
   session.setAttribute("name","zhangsan");
   %>
   
    <title>test</title>
    
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    
<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
<meta http-equiv="description" content="This is my page">
<!--
<link rel="stylesheet" type="text/css" href="styles.css">
-->
<script type="text/javascript">
function check(){
if(document.form1.name.value!= "<%=session.getAttribute("name")%>"){
alert("ok");
}
}
</script>
  </head>
  
  <body>
 <form action="/hahha/index.jsp">
    <input type="text" name="name" id="name"/>
    <input type="submit" name="ok" onClick="return check()"/>
 </form> 
  </body>
</html>

解决方案 »

  1.   

    当我用alert("session.setAttribute("name","zhangsan")");对话框显示null............................
      

  2.   

    function check(){ 
    。return false;
    }
    你得返回false,否则页面会提交的。
      

  3.   

    在<input type="submit" />中应该是不可以同是写单机事件的!因为它本身就自带了提交表单的事件
      

  4.   

    按你说的 我加了个return false; 还是那样 当我把check()直接alert("ok");有跳出对话框,但加上比较就直接跳转,没有弹出.....高手们
      

  5.   

    首先你要知道JSP脚本在页面中是怎么执行的,在页面中遇见JSP脚本,程序就会执行的,它不会在你调用函数的时候才执行。
    你这个需要把<%=session.getAttribute("name")%>作为参数来获得值。
    function check(sessionValue){ 
    if(document.form1.name.value!= sessionValue){ 
    alert("ok"); 

    }调用:
    <input type="submit" name="ok" onClick="return check(<%=session.getAttribute("name")%>)"/>
    你在试试
      

  6.   

    我错了。
    你这个问题是你的form没有name属性  你需要把<form name="form1">中的name属性写上。。
    if(document.form1.name.value!= " <%=session.getAttribute("name")%>"){ 你这一行的!=后面多个空格。
    你还需要再加个return false;
      

  7.   

    感谢,感谢,是自己粗心了....  总感觉javascript没java那么规范,用的舒服....刚接触好不适应
      

  8.   

    <input type="submit" name="ok" onClick="return check()"/> onclick改为onsubmit;
    在函数中返回一个false;