什么是弹出个listbox?像输入法那样?

解决方案 »

  1.   

    是要这样么?
    <input type="text" name="text" onkeyUp="kiss(this.value)">
    <select id="sel" style="width:100;display:none" onchange="getValue(this.value)">
    <option value="&lt;">&lt;</option>
    <option value="&gt;">&gt;</option>
    </select>
    <script language="JavaScript">
    <!--
    function kiss(val)
    {
       var s = val.substring(val.length-1,val.length)
       if(s=="<")
       {
          sel.style.display="";
       }
    }function getValue(val)
    {
       text.value = text.value+val;
    }
    function getKey()
    {
        if(event.keyCode == 32)
    {
       sel.style.display="";
    }
    }
    //-->
    </script>
      

  2.   

    下面那样就是你想要的结果!
    <span id="se" style="display:none">
      <select name="se1"size=1 >
      <options value="111">111</options>
      <options value="222">222</options>
      <options value="33">333</options>
      <options value="444">444</options>
      </select>
      </span>  <input type="text" onkeypress="test()">
      <input type="text" onkeydown="javascript:if(window.event.keyCode==32)document.getElementById('se').style.display=''">
      

  3.   

    kisslan(郁忧的曼陀萝) :
    当我输如"<"后,系统提示
    var s = val.substring(val.length-1,val.length)
    附近有错误,意思为sel没有定义!请帮忙啊 !
      

  4.   

    你再看看,sel 只是那个隐藏的select的id, 
    <input type="text" name="text" onkeyUp="kiss(this.value)">
    <select id="sel" style="width:100;display:none" onchange="getValue(this.value)">
    <option value="&lt;">&lt;</option>
    <option value="&gt;">&gt;</option>
    </select>
    <script language="JavaScript">
    <!--
    function kiss(val)
    {
       var s = val.substring(val.length-1,val.length)
       if(s=="<")
       {
          document.all.sel.style.display="";
       }
    }function getValue(val)
    {
       text.value = text.value+val;
    }
    function getKey()
    {
        if(event.keyCode == 32)
    {
       document.all.sel.style.display="";
    }
    }
    //-->
    </script>
      

  5.   

    Try..<input type=text onkeyup="if(value=='<' || value==' ')bao.style.display='block'">
    <select id=bao style="display:none">
    <option>item 1
    <option>item 2
    </select>
      

  6.   

    下面的代码 输入"<",或者当我按空格键时,弹出该listbox!
    下面的代码试试我这可以,不知道行否?
    <input type="text" onkeydown="javascript:if((window.event.keyCode==32)||((window.event.keyCode==188)&& event.shiftKey))
    document.getElementById('se').style.display=''">
    <span id="se" style="display:none">
    <select name="se1"size=1 >
    <options value="111">111</options>
    <options value="222">222</options>
    </select>
    </span>
      

  7.   

    请各位高手帮忙!我想将该select在当前光标位置显示,当选择完数据后按enter键后,则该select又自动引藏起来,请问如何实现!!
      

  8.   

    楼主,又改了一下,只是无法得到光标当前的坐标,所以只能给它定死一个显示的位置了 :(
    <body bgcolor="#FFFFFF" onkeydown="getKey()">
    <div id="div" style="position:absolute;left:200;top:100;width:100;display:none">
    <select id="sel" style="width:100" onchange="getValue(this.value)" onkeyDown="getValue(this.value)">
    <option value="&lt;">&lt;</option>
    <option value="&gt;">&gt;</option>
    </select></div>
    <textarea rows="10" cols="100" name="text" onkeyUp="kiss(this.value)"></textarea>
    <script language="JavaScript">
    <!--
    function kiss(val)
    {
       var s = val.substring(val.length-1,val.length)
       if(s=="<")
       {
          document.all.div.style.display="";
      document.all.sel.focus();
       }
    }function getValue(val)
    {
       text.value = text.value+val;
       document.all.div.style.display="none";
       document.all.text.focus();
    }
    function getKey()
    {
        if(event.keyCode == 32)
    {
       document.all.div.style.display="";
      document.all.sel.focus();
    }
    }
    //-->
    </script>
    </body>
      

  9.   

    还是不能获得光标位置。所以只能找到鼠标位置。
    鼠标在哪就在哪出现select框。之后隐藏!
    <script>
    function aaa()
    {
    if((window.event.keyCode==32)||((window.event.keyCode==188)&& event.shiftKey))
    {
    document.getElementById('layer2').style.left=window.event.x;
    document.getElementById('layer2').style.top=window.event.y;
    document.getElementById('layer2').style.display='';}
    }
    function bbb(obj)
    {
    document.getElementById('te1').value=document.getElementById('te1').value.substr(0, document.getElementById('te1').value.length-1);  
    document.getElementById('te1').value=document.getElementById('te1').value+obj
    ;
    document.getElementById('layer2').style.display='none';
    }
      </script><div id="layer1" style="position=absolute;left:50px;top:50;width=400;height=400;Z-index=1"><textarea id=te1 onkeydown="aaa()"></textarea></div>
    <div id="layer2" style="position=absolute;left:50px;top:50;width=50;height=50;Z-index=2;display='none'">
    <select name="se1"size=1 onchange="bbb(this.options[this.selectedIndex].value)">
    <option value=""></option>
        <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
        </select>
    </div>
      

  10.   

    还是不能获得光标位置。所以只能找到鼠标位置。
    鼠标在哪就在哪出现select框。之后隐藏!
    <script>
    function aaa()
    {
    if((window.event.keyCode==32)||((window.event.keyCode==188)&& event.shiftKey))
    {
    document.getElementById('layer2').style.left=window.event.x;
    document.getElementById('layer2').style.top=window.event.y;
    document.getElementById('layer2').style.display='';}
    }
    function bbb(obj)
    {
    document.getElementById('te1').value=document.getElementById('te1').value.substr(0, document.getElementById('te1').value.length-1);  
    document.getElementById('te1').value=document.getElementById('te1').value+obj
    ;
    document.getElementById('layer2').style.display='none';
    }
      </script><div id="layer1" style="position=absolute;left:50px;top:50;width=400;height=300;Z-index=1"><textarea id=te1 rows="23" cols="100" onkeydown="aaa()"></textarea></div>
    <div id="layer2" style="position=absolute;left:50px;top:50;width=50;height=50;Z-index=2;display='none'">
    <select name="se1"size=1 onchange="bbb(this.options[this.selectedIndex].value)">
    <option value=""></option>
        <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
        </select>
    </div>
      

  11.   

    少改了一点。
    <script language="javascript">
    function aaa()
    {
    if((window.event.keyCode==32)||((window.event.keyCode==188)&& event.shiftKey))
    {
    document.getElementById('layer2').style.left=window.event.x;
    document.getElementById('layer2').style.top=window.event.y;
    document.getElementById('layer2').style.display='';
    }
    }
    function bbb(obj)
    {
    document.getElementById('te1').value=document.getElementById('te1').value.substr(0, document.getElementById('te1').value.length-1);  
    document.getElementById('te1').value=document.getElementById('te1').value+obj
    ;
    document.getElementById('layer2').style.display='none';
    document.getElementById('te1').focus();
    }
     </script>
     <textarea id=te1 rows="23" cols="100" onkeydown="aaa()" ></textarea>
     <div id="layer2"style="position=absolute;left:50px;top:50;width=50;height=50;Z-index=2;display='none'">
    <select name="se1"size=1 onchange="bbb(this.options[this.selectedIndex].value)">
       <option value=""></option>
       <option value="1">1</option>
       <option value="2">2</option>
       <option value="3">3</option>
     </select>
    </div>
      

  12.   

    下面可以用上下箭头+回车!你试试!
    <script language="javascript">
    function aaa()
    {
    if((window.event.keyCode==32)||((window.event.keyCode==188)&& event.shiftKey))
    {
    document.getElementById('layer2').style.left=window.event.x;
    document.getElementById('layer2').style.top=window.event.y;
    document.getElementById('layer2').style.display='';
    document.getElementById('se1').focus();}
    }
    function bbb(obj)
    {
    if(window.event.keyCode!='13')
    return false;
    else{
    document.getElementById('te1').value=document.getElementById('te1').value.substr(0, document.getElementById('te1').value.length-1);  
    document.getElementById('te1').value=document.getElementById('te1').value+obj
    ;
    document.getElementById('layer2').style.display='none';
    document.getElementById('te1').focus();
    return true;
    }
    return false;
    }  </script>
        <textarea id=te1 rows="23" cols="100" onkeydown="aaa()" ></textarea>
        <div id="layer2" style="position=absolute;left:50px;top:50;width=50;height=50;Z-index=2;display='none'">
    <select name="se1"size=1 onkeydown="javascript:bbb(this.options[this.selectedIndex].value)">
    <option value=""></option>
        <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
        </select>
    </div>
      

  13.   

    xzq686(瞬) 用你的方法,当我调用bbb后,textarea中只有我选择的值,原来的值没有了.我看了一下,你的方法好象是将原来的值得覆盖了,但是为什么看不见呢!请指教!!!!1
      

  14.   

    "<" 的keyCode是188,">"的是多少啊 ?