我没做过,不过有一个方法,希望能行。宽度可通过style="width:100px"(100象素宽,可根据需要设成任意值);至于提示,不知是否可以通过以下方法得到列表选中项的值:
列表名.options[列表名.selectedIndex].value,
如果可以的话,就可以用层的方式来显示未显示完的列表值。

解决方案 »

  1.   

    鼠标放到里面一个option时,如果该option的宽度超过下拉框的宽度,也能显示出来,比如用层的方式。没办法实现
      

  2.   

    <input><input><input><input><input><input><input><input>
    <input type='text' name='titlename' maxlength='8' size='10' class='t'onblur="if(document.activeElement!=document.all.titlename2)document.all.sending.style.visibility='hidden'">
    <img src="downdeltal.gif" name="downpic" style="position: absolute; top: 2000; left: 2000;border:0px"  onclick="document.all.sending.style.top=document.all.titlename.offsetTop+this.clientHeight;document.all.sending.style.left=document.all.titlename.offsetLeft;document.all.sending.style.visibility='visible';document.all.titlename.focus();">
    <div id="sending" style="position: absolute; top: 2000; left: 2000; visibility: hidden;border:0px">
    <select name='titlename2' size="3"  class='t' onblur="document.all.sending.style.visibility='hidden'" onclick="document.all.sending.style.visibility='hidden';document.all.titlename.value=this.value;">
    <option value="期中考试">期中考试期中考试期中考试期中考试期中考</option>
    <option value="期末考试">期末考试</option>
    <option value="单元测验">单元测验</option>
    </select>
    </div>
    <script>
    document.all.downpic.style.top=document.all.titlename.offsetTop;
    document.all.downpic.style.height=document.all.titlename.offsetHeight;
    document.all.downpic.style.left=document.all.titlename.offsetLeft + document.all.titlename.offsetWidth-document.all.downpic.clientWidth;
    window.onresize=function(){
    document.all.downpic.style.top=document.all.titlename.offsetTop;
    document.all.downpic.style.height=document.all.titlename.offsetHeight;
    document.all.downpic.style.left=document.all.titlename.offsetLeft + document.all.titlename.offsetWidth-document.all.downpic.clientWidth;
    }
    </script>
      

  3.   

    上面的代码有点垃圾(未加整理)但功能还是可以满足需要的。<img src="downdeltal.gif" name="downpic"只需给这个图形控件设定一幅倒三角形的图片就行了。
      

  4.   


    稍作改进:<input><input><input><input><input><input><input><input>
    <input type='text' name='titlename' size='10' onblur="hiddenlist();"><div id="sending" style="position: absolute; top: 2000; left: 2000; visibility: hidden;border:0px">
    <select name='titlename2' size="3"  class='t' onblur="hiddenlist();" onclick="showtext();">
    <option value="期中考试">期中考试期中考试期中考试期中考试期中考</option>
    <option value="期末考试">期末考试</option>
    <option value="单元测验">单元测验</option>
    </select>
    </div><img src="d:\web\image\sort2.gif" name="downpic" style="position: absolute; top: 2000; left: 2000;border:0px"  onclick="showlist();"><script>
    var showflag=false;
    function hiddenlist(){
    if(document.activeElement!=document.all.titlename2)document.all.sending.style.visibility='hidden'
    }
    function showlist(){
    if(showflag){
    document.all.sending.style.visibility='hidden';
    showflag=false;
    }
    else{
    document.all.sending.style.top=document.all.titlename.offsetTop+document.all.titlename.clientHeight;
    document.all.sending.style.left=document.all.titlename.offsetLeft;
    document.all.sending.style.visibility='visible';
    document.all.titlename.focus();
    showflag=true;
    }
    }
    function showtext(){
    document.all.sending.style.visibility='hidden';
    document.all.titlename.value=document.all.titlename2.options[document.all.titlename2.selectedIndex].text;
    showflag=false;
    }
    function moveimg(){
    document.all.downpic.style.top=document.all.titlename.offsetTop+(document.all.titlename.offsetHeight-document.all.titlename.clientHeight)/2;
    document.all.downpic.style.height=document.all.titlename.clientHeight;
    document.all.downpic.style.left=document.all.titlename.offsetLeft + document.all.titlename.offsetWidth-document.all.downpic.offsetWidth;
    }
    moveimg();
    window.onresize=function(){moveimg();}</script>