我想在onchange函数中取得下拉框中选定的值,判断值的内容后给一个变量赋值,然后将这个变量的值传到另外一个jsp中并显示出来。但是结果总是显示变量的值为空,也就是说在onchange中赋值没有成功,那么是不是取下拉框值也不成功呢?请各位高手指点!谢谢
第一个jsp中部分代码:
<script language="JavaScript" fptype="dynamicoutline">
function select1(){
    var data1 = "1111";
    var data2 = "0000";
    var id = document.getElementsByName("sel1").value;
    if(id =="YES"){
         request.getSession().setAttribute("select1", data1);
         response.sendRedirect("Untitled-3.jsp");    
       }
       else{
         request.getSession().setAttribute("select1", data2);
         response.sendRedirect("Untitled-3.jsp");         
       }    
    }
</script>    <td width="70" height="10" valign="top" align="center">
        <p align="center">
        <select size="1" name="sel1" onchange="select1()">                   
       <option>YES</option>
        <option selected> NO </option>
        </select></p>
    </td>
在第二个jsp中我用如下代码读取值并显示:
<p align="center"><b><font face="Arial" size="6"><%=request.getSession().getAttribute("select1")%></font></b></p><br/>

解决方案 »

  1.   

    var id = document.getElementsByName("sel1").value; 改为
    var id=document.getElementById("id").options[document.getElementById("id").selectedIndex].text;//<option value="yesvalue">yes</option>
    id=yes
    var id = document.getElementsByName("id").value;
    id=yesvalue 
      

  2.   

    楼上正解:
    显示的值:
    document.getElementById("id").options[document.getElementById("id").selectedIndex].text;
    实际后台的值:
    document.getElementById("id").options[document.getElementById("id").selectedIndex].value;
      

  3.   

    我试着按楼上的改了,可是结果还是和以前一样,第二个jsp读不出值,显示仍然是null。
      

  4.   

    你好像混淆了javascript和jsp的操作关系javascript是浏览器脚本,而jsp在后台执行.jsp通过生产html和javascript到浏览器解析执行. 浏览器的数据只能通过get或post方法提交到后台.具体的方法你可在网上Google搜索一下
      

  5.   

    request.getSession().setAttribute("select1", data1); 和request.getSession().getAttribute("select1")不能赋值与取值吗?这样有什么错误吗?
      

  6.   

    这个只能用在jsp不能用在脚本,否则出
    request is not defined
      

  7.   

    呵呵,果然大家都看出来了。
    if(id =="YES"){
            request.getSession().setAttribute("select1", data1);
            response.sendRedirect("Untitled-3.jsp");    前面都是javascript的,运行在客户的浏览器里,
    后面是java的,运行在服务器里怎么能写到一起在客户端和服务器端一起运行呢?
      

  8.   

    做个form,在js中submit,另一个页面中把select的值取出来再显示吧。不过其实你这个目的,js不过是用来验证输入是否合法,而你给的是个选择框,要不是对安全那么高,不用验证吧,直接submit后在另一个页面中取就好了,没必要使用js 
      

  9.   

    不好意思,忘了你要onchange后跳转,那还是要js,就在Js中submit吧