日期:2014-05-17  浏览次数:20771 次

关于jsp下拉菜单异常如何处理。求教!
<form action="yanzheng.jsp" name="loginForm" method="post">
<table>

<td><input type="text" name="name" size="20" maxlength="20"/></td>
<td><input type="text" name="password" size="20" maxlength="20"/></td>

<td>
<select name="bumen" id="bumen" style="width:140px;">
  <option >请选择部门</option>  
<%!String sql1="select bumenname from bumen where 1=1";%>  
<%
  for(int i=0;i<sql.bumenchaxun(sql1).size();i++)
  {
%> 
  <option value=<%=i%>><%=sql.bumenchaxun(sql1).get(i)%></option>
  <%}%>
</select>  
</td>
<td width="%50" align="center" valign="bottom" ><input type="submit" value="确定">
 </td>
</table> 
</form>


我把代码精简了下,给大家节约时间,现在的问题就是,那上面的部门是从数据库中查询出来的,但是我如果不选择部门直接点击 确定,就会报异常,程序直接运行不了,我又是以页面形式跳转,传递参数到下一个页面的,我改怎么处理了?

------解决方案--------------------
异常信息贴出来
------解决方案--------------------
如果部门为必选,可以这样<option value="-1">请选择部门</option>
提交前判断下,是否为 -1
------解决方案--------------------
哦,那是你后台的原因,因为这个时候你提交过去的值是"请选择部门"这个,后台你需要转换成number型的,所以就报错了撒,<option value="-1">请选择部门</option>这样应该能解决,你后台对-1的情况处理一下
------解决方案--------------------
option 默认为数据库查出来的第一个 楼主尝试一下 
因为<option >请选择部门</option> 是页面的 并不是数据库的
所以可能action处理的时候需要的数据是必须从数据库取出来的
所以要设置一下
------解决方案--------------------
可以给“请选择部门”设值,像上面的那样
也可以接收时如果判断类型
总之原因就是系统以为“请选择部门”这个选项是你选择的,所以就传了过去,而这个参数不符合你接收的设定,所以出错了。而你现在要做的就是对这个情况进行处理,排除这个问题。哦了
------解决方案--------------------
<option value="1">请选择部门<option/> 给个默认值
------解决方案--------------------
<option value="1" selected="selected">请选择部门</option>
------解决方案--------------------
探讨
引用:
如果部门为必选,可以这样<option value="-1">请选择部门</option>
提交前判断下,是否为 -1


但是我的<option value="">这个地方本来就是个变量啊,我知道该处理这个问题,但是方案想不到,
而且传过去的值应该是null才对,我应该在本页面处理还是在接收页面处理了?

------解决方案--------------------
JScript code


function check()
{

 var department = document.getElementById('bumen');
  if( department.options[department.selectedIndex].innerHTML=='请选择部门')
  {
    alert("请选择部门");
      return false;
  }
}