jquery UI autocomplete获得焦点自动弹出跟随下拉框

本文介绍了如何在jQuery UI的autocomplete组件中,实现获取焦点时自动显示下拉列表。通过设置样式和JavaScript代码,可以使得autocomplete控件在获得焦点时即展示下拉选项,而不仅仅是用户输入后。同时,代码还处理了高度限制和滚动条显示,以及焦点事件的响应。

之前在做项目的时候,碰到一个需求,即一个autocomplete控件,当点击获得焦点的时候也要弹出下拉列表(autocomplete默认是输入之后才会跟随出下拉列表),查找资料后发现可以作如下处理,下面直接贴代码。


设置autocomplete样式如下:

<style>
.ui-autocomplete {
z-index: 11111;
    max-height: 277px;//高度值
    overflow-y: auto; //超过高度出现滚动条
    /* prevent horizontal scrollbar */
    overflow-x: hidden; //横向超出隐藏,如果要出现横向滚动,设置为auto即可
    }
    /* IE 6 doesn't support max-height
     * we use height instead, but this forces the menu to always be this tall
     */
html .ui-autocomplete {
       z-index: 11111;
       height:auto !important; 
       height: 277px;
        overflow-y: auto; //超过高度出现滚动条
        /* prevent horizontal scrollbar */
        overflow-x: hidden; //横向超出隐藏,如果要出现横向滚动,设置为auto即可
        
    }

JS代码如下

$("#editRlEduEdition").autocomplete({
  scroll:true,

  minLength:0,
  focus :function () {                     
            return false;
         },
         select: function(event, ui){            
        $this = $(this);
    setTimeout(function () {               
        $this.blur();
       }, 1);
    },
        autoFocus: false,
     source: function(request, response) {
      var inputPublishName = $("#editRLPublish").val();
  var inputZYBBName = $("#editRlEdition").val();
  var inputEduName = $("#editRlEduEdition").val();
    var d = {
    "publishName":inputPublishName,
  "editionName":inputZYBBName,
  "eduEditionName":inputEduName
  };  
       $.ajax({
type : "POST",
url : ctx + "/sys/nrmpEduEdition/getEduEditionByName",
contentType : 'application/json',
dataType : 'json',
async : true,
data:JSON.stringify(d),
           success: function( data ) {
            if(null != data){
            var b = data.value;
            var arr =  new Array();
            var count = 0;
            for(var a in b){
            arr.push(a);
            count ++;
            }
            response(arr);
            }
           }
       });
   }
}).focus(function () {
        $(this).autocomplete("search");
    });

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值