一个可以输入的下拉框

<%@ page contentType="text/html; charset=gb2312" language="java"  import="java.lang.String" %>
<%@ page import = "java.util.*"%>
<%@page import="com.gxsf.entity.cache.*"%>
<jsp:useBean id="cacheSearch" class="com.gxsf.pub.CacheSearch" scope="page"/>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>测试页</title>
</head>

<script language="javascript">
var TempArr=[];//用于存储下拉框选项的数组
/**
 * 函数:function Init()
 * 初始化下拉框选项
 */
function Init(){
    var SelectObj=document.SelectForm.elements["selectInput"];
    with(SelectObj){
     for(i=0;i<length;i++){
      TempArr[i]=[options[i].text,options[i].value];
  }
 }
}

/**
 * 函数:function SelectTip(flag)
 * flag=1时,初始化下拉框选项
 * flag=1时,过滤掉不是以输入内容开头的选项
 * 当输入的内容为空(即:"")时,重新初始化下拉框选项
 */
function SelectTip(flag){//必须的,过滤掉不是以输入内容开头的选项
    var TxtObj=document.SelectForm.elements["txtInput"];
    var SelectObj=document.getElementById("selectInput");
    var Arr=[];
    with(SelectObj){
  var SelectHTML=innerHTML.match(/<[^>]*>/)[0];
  if(TxtObj.value != "" && flag != 1) Arr[0]="<option value='n' selected></option>";
  for(i=0;i<TempArr.length;i++){
   if(TempArr[i][0].indexOf(TxtObj.value)==0||flag==1){
          Arr[Arr.length]="<option value='"+TempArr[i][1]+"'>"+TempArr[i][0]+"</option>";
   }
  }
  innerHTML=SelectHTML+Arr.join()+"</SELECT>";
    }
}
/**
 * 函数:function pressKey()
 * 过滤Enter
 */
function pressKey(){
    if(event.keyCode == 13){
     event.keyCode = '';
     return;
 }
}

/**
 * 函数:function checkTest()
 * 测试时用的
 */
function checkTest(){
    if(event.keyCode == 13){
     return;
 }
   if(document.SelectForm.selectInput.value == "n"){
       alert("请选择...!");
    document.SelectForm.selectInput.focus();
    return;
   }
   document.SelectForm.submit();
}
</script>

<%
    String selectInput = (null == request.getParameter("selectInput"))?"n":request.getParameter("selectInput");//获取提交的参数
    out.print(selectInput);//测试用的
%>

<body οnlοad="Init()"><!--初始化下拉框-->
<form name="SelectForm" method="post">
<table>
  <tr><td><input type="button" value="提 交" onClick="checkTest()"><!--测试用的--></td></tr>
   <tr>
    <td><!--以下基本属性要保留,部分参数值可修改-->
  <div style="position:absolute;">
  <input name="txtInput" onKeyPress="pressKey();" style="position:absolute;top:30px; width: 150px; height:21px; left:0px;" οnkeyup="SelectTip(0);" onMouseUp="txtInput.value='';SelectTip(0);">
  <span id="selectInput">
   <select name="selectInput" style="position:absolute;top:30px;width:150px;height:20px;left:0px; clip: rect(0 180 132 132)" οnchange="txtInput.value=options[selectedIndex].text;">
    <option value="n" selected></option>
    <%
     //用班级作为测试数据
     Iterator SelectIterator = cacheSearch.getClassNum();
     ClassNumEnt classNumEnt = new ClassNumEnt();
     while(SelectIterator.hasNext()){
      classNumEnt =(ClassNumEnt)SelectIterator.next();
    %>
      <option value="<%=classNumEnt.getFClassNum()%>" <%if(classNumEnt.getFClassNum().equals(selectInput)) out.print("selected");%>><%=classNumEnt.getFClassName()%></option>
    <%
     }
    %>
   </select>
   <script language="javascript">//设置输入框初始值,以同步于下拉框
    document.SelectForm.txtInput.value=document.SelectForm.selectInput.options[document.SelectForm.selectInput.selectedIndex].text;
   </script>
  </span>
     </div>
    </td>
   </tr>
  </table>
 </form>
</body> 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值