首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于自定义搜索按键跳转到DropDownList中的项目

基于自定义搜索按键跳转到DropDownList中的项目
EN

Stack Overflow用户
提问于 2012-09-18 00:59:36
回答 1查看 2.1K关注 0票数 0

我怎样才能允许用户打开一个下拉列表,然后输入几个字母来跳转到正确的项目?我需要实现我自己的搜索逻辑,因为格式是固定的,不能按原样搜索(都以一个左括号开头),但我不确定如何连接行为。Jquery是首选,但是任何可以跨浏览器工作的东西都可以。

示例:

(AABE)能效空调

(BAE)树皮空气设备

键入'ba‘应该跳到第二个条目,依此类推。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-09-18 01:50:26

在jQuery中,您可以使用keydown事件。可以在这里实时查看以下代码:http://jsfiddle.net/TXZWC/26/

HTML:

代码语言:javascript
复制
<select name="companies">
    <option value="">choose</option>
    <option value="1" data-search-match="AABE">(AABE) Able Air Conditioning</option>
    <option value="2" data-search-match="BAE">(BAE) Bark Air Equipment</option>
</select>

<a id="clear-search" href="#">Clear Search</a>

JS:

代码语言:javascript
复制
 $(document).ready(function(){

   var $select = $('select'),
        searchQuery = '';

    $(document).on('keydown', function (e){

        // get the char value and append to search string
        searchQuery += String.fromCharCode(e.which);

        // unselect previously selected option
        deselectSelectedOption();

        // find matching option                
        var $selected = $select.find('option').filter(function(){            
            return $(this).data('search-match') === searchQuery;
        });

        if($selected){
            $selected.attr('selected', 'true');
        }                      
    });    

     $('#clear-search').click(function(e){
       e.preventDefault();
       searchQuery = '';                        
       deselectSelectedOption();
       $select.find('option').first().attr('selected', 'true');
    });

    function deselectSelectedOption(){
        $select.find('option[selected]').removeAttr('selected');     
    }        
});​
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12463940

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档