ajax自动完成 下拉提示框的疑问

http://bbs.blueidea.com/thread-2691904-1-1.html
http://www.cnblogs.com/jinchun/archive/2007/03/28/691145.html

<script language="javascript">
var intIndex=0;arrList = new Array();
arrList[intIndex++] = "1sdfsdf.com";
arrList[intIndex++] = "a11sdafs.net";
arrList[intIndex++] = "b22dsafsdf";
arrList[intIndex++] = "c333asdfsadf";
arrList[intIndex++] = "4444dsafasdf";
arrList[intIndex++] = "dddsfddsafdsaf";
arrList[intIndex++] = "121213dsafsdaf";
arrList[intIndex++] = "43213asdfadsf";
arrList[intIndex++] = "dsa3121dasf3";
arrList[intIndex++] = "a213";
arrList[intIndex++] = "323313";
arrList[intIndex++] = "3213";
arrList[intIndex++] = "32213";
arrList[intIndex++] = "dsfsdddd";
arrList[intIndex++] = "ds11dfsfd";
arrList[intIndex++] = "ffdafd";
arrList[intIndex++] = "afdfd";
arrList[intIndex++] = "afd";
arrList[intIndex++] = "baffad";
arrList[intIndex++] = "2fda2fd";
arrList[intIndex++] = "dasd";

function smanPromptList(arrList,objInputId){
    this.style = "background:#E8F7EB;border: 1px solid #CCCCCC;font-size:14px;cursor: default;"
    if (arrList.constructor!=Array){alert('smanPromptList初始化失败:第一个参数非数组!');return ;}
    window.onload =function() {
                                 arrList.sort(function(a,b){
                                          if(a.length>b.length)return 1;
                                         else if(a.length==b.length)return a.localeCompare(b);
                                         else return -1;
                                })
        var objouter=document.getElementById("__smanDisp") //显示的DIV对象
        var objInput = document.getElementById(objInputId); //文本框对象
        var selectedIndex=-1;
        var intTmp; //循环用的:)
        if (objInput==null) {alert('smanPromptList初始化失败:没有找到"'+objInputId+'"文本框');return ;}
            //文本框失去焦点
            objInput.οnblur=function(){
                objouter.style.display='none';
            }
            //文本框按键抬起
            objInput.οnkeyup=checkKeyCode;
            //文本框得到焦点
            objInput.οnfοcus=checkAndShow;
            function checkKeyCode(){
                var ie = (document.all)? true:false
                if (ie){
                    var keyCode=event.keyCode
                    if (keyCode==40||keyCode==38){ //下上
                        var isUp=false
                        if(keyCode==40) isUp=true ;
                        chageSelection(isUp)
                    }else if (keyCode==13){//回车
                        outSelection(selectedIndex);
                    }else{
                        checkAndShow()
                    }
                }else{
                    checkAndShow()
                }
                divPosition()
            }

            function checkAndShow(){
                        var strInput = objInput.value
                        if (strInput!=""){
                            divPosition();
                            selectedIndex=-1;
                            objouter.innerHTML ="";
                            for (intTmp=0;intTmp<arrList.length;intTmp++){
                                if (arrList[intTmp].substr(0, strInput.length).toUpperCase()==strInput.toUpperCase()){
                                    addOption(arrList[intTmp]);
                                }
                            }
                            objouter.style.display='';
                        }else{
                            objouter.style.display='none';
                    }
                    function addOption(value){
                        objouter.innerHTML +="<div οnmοuseοver=/"this.className='sman_selectedStyle'/" οnmοuseοut=/"this.className=''/" οnmοusedοwn=/"document.getElementById('"+objInputId+"').value='" + value + "'/">" + value + "</div>"   
                    }
            }
            function chageSelection(isUp){
                if (objouter.style.display=='none'){
                    objouter.style.display='';
                }else{
                    if (isUp)
                        selectedIndex++
                    else
                        selectedIndex--
                }
                var maxIndex = objouter.children.length-1;
                if (selectedIndex<0){selectedIndex=0}
                if (selectedIndex>maxIndex) {selectedIndex=maxIndex}
                for (intTmp=0;intTmp<=maxIndex;intTmp++){

                    if (intTmp==selectedIndex){
                        objouter.children[intTmp].className="sman_selectedStyle";
                    }else{
                        objouter.children[intTmp].className="";
                    }
                }
            }
            function outSelection(Index){
                objInput.value = objouter.children[Index].innerText;
                objouter.style.display='none';
            }
            function divPosition(){
                objouter.style.top    =getAbsoluteHeight(objInput)+getAbsoluteTop(objInput);
                objouter.style.left    =getAbsoluteLeft(objInput);
                objouter.style.width=getAbsoluteWidth(objInput)
            }
    }
    document.write("<div id='__smanDisp' style='position:absolute;display:none;" + this.style + "' onbulr> </div>");
    document.write("<style>.sman_selectedStyle{background-Color:#102681;color:#FFFFFF}</style>");
    function getAbsoluteHeight(ob){
        return ob.offsetHeight
    }
    function getAbsoluteWidth(ob){
        return ob.offsetWidth
    }
    function getAbsoluteLeft(ob){
        var mendingLeft = ob .offsetLeft;
        while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" ){
            mendingLeft += ob .offsetParent.offsetLeft;
            mendingOb = ob.offsetParent;
        }
        return mendingLeft ;
    }
    function getAbsoluteTop(ob){
        var mendingTop = ob.offsetTop;
        while( ob != null && ob.offsetParent != null && ob.offsetParent.tagName != "BODY" ){
            mendingTop += ob .offsetParent.offsetTop;
            ob = ob .offsetParent;
        }
        return mendingTop ;
    }
}
smanPromptList(arrList,"aspx")
smanPromptList(arrList,"inputer")
</script>
请输入内容:
<input type="text" id="inputer"> 如 a
<br>
<font color="red">
 改来改去还是只能用于一个文本框的下拉提示
</font>

如果是两个的话就不能出来提示了呀。。。<br>
<input type="text" id="aspx"><br>
多个文本框的下拉提示 还是没实现,
我的JS不好还请大家帮帮看看。我想

<font color="red">
实现多个文本框都能下拉提示 怎么办啊。。。<br>
</font>

 

增加一个函数.
function dropalert()
{
init();
smanPromptList(arrList,"Text1");//在这里添加控件的ID即可
smanPromptList(arrList,"Text2");//在这里添加控件的ID即可
smanPromptList(arrList,"Text3");//在这里添加控件的ID即可
}

以上的代码表示text1,text2,text3三个文本框同时实现输入提示.

增加一个函数.
function dropalert()
{
init();
smanPromptList(arrList,"Text1");//在这里添加控件的ID即可
smanPromptList(arrList,"Text2");//在这里添加控件的ID即可
smanPromptList(arrList,"Text3");//在这里添加控件的ID即可
}

以上的代码表示text1,text2,text3三个文本框同时实现输入提示.

在html中写法如下
<body οnlοad="dropalert()">
<input type="text" id="Text1" >
<input type="text" id="Text2" >
<input type="text" id="Text3" >
</body>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值