提到这样一个需求“在新闻表中添加新闻分类的编号和名字”,一般情况下我们将分类的ID放在下拉菜单选项的value中,此时需要获取选项的编号和名字,我们该怎么做呢?我常用的有如下两种方式:

  1、自己构造下拉菜单选项的value,比如:


   <select name="typeId" id="typeId">
  <option value="0">= 请选择 =</option>
  <option value="3_spring">Spring</option>
  <option value="2_struts">Struts</option>
  <option value="1_hibernate">Hibernate</option>
  </select>

  在Action里面首先获取typeId的值,然后再将其解析成两个值。

  2、在页面添加隐藏域,当下拉菜单的发生改变时,将当前选项的名字设置到隐藏域中。

  2.1 给页面添加隐藏域

<input type="hidden" name="typeName" value="" id="typeName"/>

  2.2 编写javascript代码

//设置分类名称的值
  function setTypeName(){
  var type = document.getElementByIdx_x("typeId");
  var pindex = type.selectedIndex;
  // 获取选中的下拉框的值(value)
  var pValue = type.options[pindex].value;
  // 获取选中的下拉框的选项(key)
  var pText = type.options[pindex].text;
  //alert(pText);
  //给隐藏域typeName赋值
  document.getElementByIdx_x("typeName").value=pText;
  }

  2.3 给下拉菜单添加事件

   <select name=" typeId" id="typeId" οnchange="javascript:setTypeName();">
  <option value="0">= 请选择 =</option>
  <option value="3">Spring</option>
  <option value="2">Struts</option>
  <option value="1">Hibernate</option>
  </select>

  2.4 在Action中分别获取typeName、typeId即可。


-----------------------------------------------------------
  var par =document.getElementByIdx_x('selectID').value;
  location.href="myjsp.jsp?name=" par;
  // 或在新窗口打开:open("myjsp.jsp?name=" par,"_blank","");
  假如par是中文,需要在servlet那边转码
  String par = request.getParameter("par");
  par = new String(par.getBytes("ISO-8859-1"),"GBK");
  String str=request.getParameter("下拉框的名字");


    3、利用jQuery

        

//获取select各项内容的中的文本内容
var text = $('#typeId option:selected').text();
//获取selecte各项的value
var value=$('#typeId option:selected').val();