请问在一个jsp页面内怎样获取下拉框的值?
<select name="s1">
<option value="一月份">一月份</option>
<option value="二月份">二月份</option>
<option value="三月份">三月份</option>
<option value="四月份">四月份</option>
<option value="五月份">五月份</option>
<option value="六月份">六月份</option>
<option value="七月份">七月份</option>
<option value="八月份">八月份</option>
<option value="九月份">九月份</option>
<option value="十月份">十月份</option>
<option value="十一月份">十一月份</option>
<option value="十二月份">十二月份</option>
</select>我想如果选择一月份,在同一页面能把"一月份"的参数传给别的变量,
我用的String month=request.getParameter("s1");
       out.println(month);
输出值都是空,不知道是哪里出了错,请各位给点高见.谢谢!

解决方案 »

  1.   


    <select   name="s1" onchange="theChange(this);"> 
    ......
    </select> function theChange(obj) {
        var value = obj.options[obj.selectedIndex].value;
        alert(value);
    }
      

  2.   

    java代码优先于html代码执行,
    因此String   month=request.getParameter("s1"); 执行的时候页面html代码还没出来,就什么也取不到
    再说request.getParameter("s1")是取提交后的值
      

  3.   


    一楼的可能还没有真正理解楼主的意思,不过思路是对的:<form name="yourFormName">
    <select   name="s1" onchange="theChange(this);"> 
    ......
    </select> <input type="text" name="gettedValue" value="" />
    //然后再将这个值传到action中,就是要将表单提交的
    //就像这样取:
    //String   month=request.getParameter("gettedValue"); <from>function theChange(obj) {
        document.yourFormName.gettedValue.value = obj.options[obj.selectedIndex].value;
        alert(value);
    }
    另外在同一个页面没法这样做的:
    String   month=request.getParameter("s1"); 
                  out.println(month); 只有提交(submit)了以后才能从parameter中取到相应的值!
      

  4.   


    或者你不让别人看到这个text框就把这个:<input   type="text"   name="gettedValue"   value=""   />改成:<input   type="hidden"   name="gettedValue"   value=""   /> 不知道楼主明白了没?
      

  5.   

    我是想做个日历,不用点提交按钮就能在本页面根据下列框中选择的日期显示日历,就跟WINDOWS任务栏中的日历一样,另日历一样.所以想把日期的值赋给本页面的变量,不想用JS做,只希望能用JSP做出来.
      

  6.   

    用户ajax试一下,不过还是要用到js的
      

  7.   

    你想局部改变内容的话,也只能用js了(AJAX也要用JS)