下拉菜单

<%@ page contentType="text ml; charset=gb2312"%>
<HTML>
    <HEAD>
        <TITLE>可搜索输入下拉框实现</TITLE>
    </HEAD>
    <Script Language="JavaScript">
<!--
   var whichText;
   function selectStation(obj) {
          var objSelStation = obj;
       if (obj.selectedIndex != -1) {
           var stationName = obj.options[obj.selectedIndex].text;
           whichText.value = stationName;
       }
       var stobj= document.getElementsByName('hospitalCode')[0];
       showDivStation(this, false,'hospitalCode')//鼠标单击某一选项选定后关闭下拉框
    }

    //响应text的事件
       var pageD =0, pageU;
       function similarFind(txtObj,seledName) {
        var curStationName = txtObj.value;
        var objSelStation = document.getElementsByName(seledName)[0];//根据实际的form name修改
        var stationLength = objSelStation.options.length;
        var flag = true;
           pageU = pageD;
        //匹配用text中的数据跟下拉框中的数据
        for (var i=0; i<stationLength; i++) {
            var stationName = objSelStation.options[i].text;
            var re = new RegExp("^" + curStationName);
               if (stationName.match(re)) {
                if (i<stationLength - 10) {
                    objSelStation.selectedIndex = i + 10;
                }
                objSelStation.selectedIndex = i;
                   pageD = i;
                   pageU = i;
                   flag = false;
                break;
            }
        }
        if(flag) {
            for (var i=0; i<stationLength; i++) {
                var stationName = objSelStation.options[i].text;
                var re2 = new RegExp("^.*" + curStationName+'.*$');
                   if (stationName.match(re2)) {
                    if (i<stationLength - 10) {
                        objSelStation.selectedIndex = i + 10;
                    }
                    objSelStation.selectedIndex = i;
                       pageD = i;
                       pageU = i;
                    break;
                }
            }
        }
        //响应下移键
           if(event.keyCode==40) {
             pageD++;
             if(pageD==objSelStation.options.length) pageD=0;
             txtObj.value=objSelStation.options[pageD].text ;
             objSelStation.selectedIndex = pageD;
           }
        //响应上移键
           if(event.keyCode==38) {
             --pageU;
             if(pageU<0) pageU=objSelStation.options.length-1;
             txtObj.value = objSelStation.options[pageU].text;
             objSelStation.selectedIndex = pageU;
        }
    }
    //下拉框显示位置
    function showDivStation(obj, b,selName) {
        var divStation = document.getElementsByName(selName)[0]
        if (b) {
           whichText = obj;
           divStation.style.display="block";
           similarFind(obj,selName);
        } else {
           divStation.style.display="none";
        }
    }
   
    function removeNull(node) {
        if(node.value=='--未选择--')
        node.value = '';
    }
//-->
</Script>

    <BODY bgcolor="#FFFFFF" topmargin="0" leftmargin="0">
        <form name="caseLhBaseForm">
            <table>
                <tr>
                    <td valign="top">医院</TD>
                    <td>
                        <input type="text" name="hospitalCodeName" style="width: 330px"
                            οnfοcus="showDivStation(this, true,'hospitalCode')" οnclick="removeNull(this)"
                            οnkeyup="similarFind(this,'hospitalCode')" value="--未选择--">
                        <select size="6" name="hospitalCode"
                            style="display: none; width: 330px;"
                            οnclick="selectStation(this)">
                            <option value="">
                                --未选择--
                            </option>
                            <option value="340403007">
                                北京上地医院
                            </option>
                            <option value="340402006">
                                北京回龙观医院
                            </option>
                            <option value="340401005">
                                北京中关村医院
                            </option>
                            <option value="340401005">
                                上地第二医院
                            </option>
                            <option value="340403007">
                                回龙观第二医院
                            </option>
                            <option value="340402006">
                                朝阳医院
                            </option>
                            <option value="340401005">
                                海淀医院
                            </option>
                            <option value="340401005">
                                东城区医院
                            </option>
                        < lect>
                    </td>
                </tr>
            </table>
        </form>
    </BODY>
</HTML>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值