<select id='fruit'  name="select" size=1 onclick="this.size==1&&this.size=5;">
    <option>1 </option>
    <option>2 </option>
    <option>3 </option>
    <option>4 </option>
    <option>5 </option>
    <option>6 </option>
    <option>7 </option>
    <option>8 </option>
    <option>9 </option>
    <option>10 </option>
</select> 

解决方案 »

  1.   

    错了,要加个括号
    <select id='fruit'  name="select" size=1 onclick="this.size==1&&(this.size=5);"> 
      

  2.   

    <select id='fruit'  name="select" size=1 onfocus="this.size==1&&(this.size=5);"> 
        <option>1 </option> 
        <option>2 </option> 
        <option>3 </option> 
        <option>4 </option> 
        <option>5 </option> 
        <option>6 </option> 
        <option>7 </option> 
        <option>8 </option> 
        <option>9 </option> 
        <option>10 </option>
    </select> 将onclick换成onfoucs看一下
      

  3.   

    <form action= method=POST>
    <select name=fruits size=3>
            <option>Banana
            <option selected>Apple
            <option >Orange
            <option>Peach
    </select><p>
    <input type=submit><input type=reset>
    </form>不知道是不是你要的,你先看看吧。
      

  4.   


    <script language='javascript'> 
      function aaa() 
      { 
        var obj = document.getElementById("fruit"); 
        obj.size=3; 
        obj.onchange = function(e)
        {
         obj.size = 1;
         obj.blur();
        }
        return false; 
      } 
    </script> 
    <select id='fruit'  name="select" onfocus="aaa();"> 
        <option>1 </option> 
        <option>2 </option> 
        <option>3 </option> 
        <option>4 </option> 
        <option>5 </option> 
        <option>6 </option> 
        <option>7 </option> 
        <option>8 </option> 
        <option>9 </option> 
        <option>10 </option> 
    </select> 
      

  5.   

    无奈了, ie7 ff7测试通过.
    ie6不支持.
      

  6.   

    用js模拟一个.类似google的搜索提示.
      

  7.   

    <script language='javascript'> 
    document.onclick=function(e){
      e=e||event;
      var obj=e.srcElement||e.target;
      var o= document.getElementById("fruit");
      if(obj==o){
        if(o.size=="1")o.size=5;
        else o.size=1;
      }else o.size=1; 
    }
    </script> 
    <select id='fruit'  name="select"  size="1" > 
        <option>1 </option> 
        <option>2 </option> 
        <option>3 </option> 
        <option>4 </option> 
        <option>5 </option> 
        <option>6 </option> 
        <option>7 </option> 
        <option>8 </option> 
        <option>9 </option> 
        <option>10 </option> 
    </select> 
      

  8.   

    我想实现下拉框的功能的初始状态为:http://xa.photo.store.qq.com/rurl2=2cb81c8b2ad1334307e77b1592a716f2b11ad766f55917f02504237450aa2a658b845a1b69e78fd6ed24a57510871779c6134f198b6f285d017f249f3f6cf92bdc5803c38959cf2b0b0801189ce0df456b808101,此下拉框中有10个数据项,我想实现下拉框的功能的最终状态为:
    http://xa.photo.store.qq.com/rurl2=00d2deff70c1e9be93e3bdfd63626711738fd878975968e5641a13337e3f43683484f448ef66b72eacc14332abb0da5e5a6c202ac351d54e3761cf9037256bacf69cdd801b0f0a2b5207af531e9d4d78f28714fb
    请会做的大哥帮忙下,谢谢
      

  9.   

    通过测试
    <input id="a" name="a" type="hidden" /><br>
    <select id='fruit'  name="select"  onFocus="this.size=5;" onBlur="this.size=1" onChange="this.size=1;document.getElementById('a').focus();"> 
        <option>1 </option> 
        <option>2 </option> 
        <option>3 </option> 
        <option>4 </option> 
        <option>5 </option> 
        <option>6 </option> 
        <option>7 </option> 
        <option>8 </option> 
        <option>9 </option> 
        <option>10 </option> 
      </select>
      

  10.   

    偶沒有IE6  没有办法测试
    firefox和ie7是通过测试
      

  11.   

    这次应该是你要的效果了吧,ie6 ie7 FF全部通过测试<html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" /> <script>
    function f(sel1)
    {
    var sel2=document.getElementById('select2');
    var i=sel2.selectedIndex>0 ?sel2.selectedIndex :0;
    var name =sel2.options[i].innerHTML;
    var tmp=new Option(name,sel2.value);
    sel1.options[0]=tmp;
    sel2.style.display='inline';
    sel1.style.width=sel2.offsetWidth;
    sel2.focus();
    }
    function c(sel2)
    {
    var sel1=document.getElementById('select1');
    var i=sel2.selectedIndex>0 ?sel2.selectedIndex :0;
    var name =sel2.options[i].innerHTML;
    var temp=new Option(name,sel2.value);
    sel1.options[0]=temp;
    sel2.style.display="none";

    }
    </script>
    </head>
    <body>
    <select id="select1" onFocus="f(this)">
    <option>dhh</option>
    </select><br>
    <select id="select2"   name="select" size="5" style="display:none;" onChange="c(this)" onBlur="this.style.display='none'"> 
        <option>dhh </option> 
        <option>bbb</option> 
        <option>3 </option> 
        <option>4 </option> 
        <option>5 </option> 
        <option>6 </option> 
        <option>7 </option> 
        <option>8 </option> 
        <option>9 </option> 
        <option>10 </option> 
      </select>
    </body>
    </html>
      

  12.   

    29楼的大哥脚本很厉害,我不得不惊叹哦,是实现了我想要的效果了,如果把你的代码放到一个页面中,此页面中有n条记录,这时我的每条记录就会被这行增宽了,其图片如:
    http://xa.photo.store.qq.com/rurl2=ef31a1bff2005d5df3c802a45380809ad95f5b2171e2b3b9ad97ccb4cdb700b52d141e716c22b0d2b4ec4031b82002c9834d41ba4d519e4d97e9cce009691c81e0cf3c59cb4ba95d9dd2da387a59e025962b01c5
    烦请29楼的大哥帮忙帮到底吧,可以帮我实现不要把这行增宽吗?谢谢哦
      

  13.   

    29楼的大哥脚本很厉害,我不得不惊叹哦,是实现了我想要的效果了,如果把你的代码放到一个页面中,此页面中有n条记录,这时我的每条记录就会被这行增宽了,其图片如:
    http://xa.photo.store.qq.com/rurl2=ef31a1bff2005d5df3c802a45380809ad95f5b2171e2b3b9ad97ccb4cdb700b52d141e716c22b0d2b4ec4031b82002c9834d41ba4d519e4d97e9cce009691c81e0cf3c59cb4ba95d9dd2da387a59e025962b01c5
    烦请29楼的大哥帮忙帮到底吧,可以帮我实现不要把这行增宽吗?谢谢哦
      

  14.   

    控制增宽的现象没有办法实现哟
    因为是模拟效果,而且下面一个select是size=5 
    所以size=5这一部分没有办法跨div 或 table
      

  15.   

    考虑浮动div 也许可以实现
      

  16.   

    测试OK
    在select2的style中加上 z-index:2; position:absolute;这两个属性 试试看
      

  17.   

      已经实现,非常感谢35楼的朋友,感觉你编程挺棒的,如果物理距离近的话,真想拜你为师了
      我工作也快1年了,这1年中虽然也学到了不少东东,可是感觉自己进步不大,我有个师兄,他工作近2年,他现在都已经是java方面的高手了。
      由于我以前数学不是很理想,又因为自己是女生,我真怀疑,我是否不适合做研发的工作,哎,有时候觉得真是累啊……
      

  18.   

    35楼的高手,再请问下function f(sel1) 

    var sel2=document.getElementById('select2'); 
    var i=sel2.selectedIndex>0 ?sel2.selectedIndex :0; 
    var name =sel2.options[i].innerHTML; 
    var tmp=new Option(name,sel2.value); 
    sel1.options[0]=tmp; 
    sel2.style.display='inline'; 
    sel1.style.width=sel2.offsetWidth; 
    sel2.focus(); 

    function c(sel2) 

    var sel1=document.getElementById('select1'); 
    var i=sel2.selectedIndex>0 ?sel2.selectedIndex :0; 
    var name =sel2.options[i].innerHTML; 
    var temp=new Option(name,sel2.value); 
    sel1.options[0]=temp; 
    sel2.style.display="none"; } 
    function mv(serial_no)   //移位
    {
        var i=document.frmCmd.elements["filter_id_"+serial_no].selectedIndex;
        var m=document.frmCmd.elements["filter_id_"+serial_no].options[i].value;
        
        //alert(m);  //测试 m 值
        //exit;
        document.frmCmd.realAction.value = "mv";
        document.frmCmd.id.value = serial_no;  //旧id
        document.frmCmd.new_id.value = m;  //新id
        document.frmCmd.submit();
    }以下是html部分
     <td width="6%" bgcolor="#FFFFFF">
                         <select id="select1" onFocus="f(this)"> 
                              <?php
                                       $filter = &$config['filter']['rule'];
                                       for($j=0; $j< count($filter); $j++)
                                       {
                                       echo '<option value="'.$j== $i.'"';
                                       // if ($j == $i) echo " selected";
                                       echo '> '.$j== $i.' </option>';
                                      
                                       }
                                      ?>
                        </select> <br> 
                        <select id="select2"  name="filter_id_<?=$i?>" size="5" style="display:none;z-index:2; position:absolute;" onChange="c(this)" onBlur="this.style.display='none'" onchange="javascript:mv('<?=$i?>')"> 
                             <?php
                                       $filter = &$config['filter']['rule'];
                                       for($j=0; $j< count($filter); $j++)
                                       {
                                       echo '<option value="'.$j.'"';
                                       if ($j == $i) echo " selected";
                                       echo '> '.$j.' </option>';
                                       //$filter_id = $filter[$i]['rule'];
                                       //echo $filter_id;
                                       }
                                      ?>
                          </select> 
                         <!--
                           <select name="filter_id_<?=$i?>" onchange="javascript:mv('<?=$i?>')">
                                     <?php
                                       $filter = &$config['filter']['rule'];
                                       for($j=0; $j< count($filter); $j++)
                                       {
                                       echo '<option value="'.$j.'"';
                                       if ($j == $i) echo " selected";
                                       echo '> '.$j.' </option>';
                                       //$filter_id = $filter[$i]['rule'];
                                       //echo $filter_id;
                                       }
                                      ?>
                          </select>
                          -->
                          
                        </td>
    把mv和c函数写在一起,然后下面onchange再调用mv和c,代码怎么合成啊?合成之后我应该就能实现我的规则移动了吧?
      35楼的高手,如果有时间的话,请帮忙帮到底吧,呵呵,非常感谢!!!
      最近2天还要研究php代码编译,这周没有时间了,看你技术很高,所以暂时有点依赖的心里了,呵呵
      

  19.   

    <select id="select2"  name="filter_id_ <?=$i?>" size="5" style="display:none;z-index:2; position:absolute;" onChange="c(this)" onBlur="this.style.display='none'" onchange="javascript:mv(' <?=$i?>')"> 
    首先你这样写onchange事件只会执行c,一个标签里不能写两个onchange  
    如果要执行两个函数可以这样写  onChange="c(this);mv('<?=i?>')" 
    也可以在c函数的最后调用mv
    上面的方案是先调用c  如果要先调用mv  凋个位子就行了。。
      

  20.   

    在IE6模拟器上,你哪个没有选项的select下拉框下拉的过程还是存的,仔细看的话就知道了.
    并且下拉以后,点击下拉框,也会看到下拉的过程.
      

  21.   

      我知道一个onchange事件是不可以调用两个函数的,最近头疼真的一点都不想思考。
      其实要是有时间的话,我想用文本框的标签实现公司说需要的功能呢,但是现在怀孕了,最近老是头疼,也不想思考,就只有交差式的完成任务了,也考虑着辞职呢,但是听说现在工作难找,所以正在犹豫中……