如何使用此变量来获取typeahead.js中的输入id?

时间:2014-12-23 13:37:56

标签: javascript jquery typeahead.js

我第一次使用typeahead,对于你们中的许多人来说这应该是一个简单的问题。我有多个输入元素我正在使用typeahead。所有这些元素都有相同的类。

<input class="typeahead" type="text" id="element_1" >
<input class="typeahead" type="text" id="element_2" >

当typeahead在任何元素上处于活动状态时,我需要确定它的id。这就是我想要的。

$('.typeahead').typeahead({
    hint: true,
    highlight: true,
    minLength: 1
},
{
    name: 'items',
    displayKey: 'value',
    source:populateItems()
});


var populateItems=function(){
    return function findMatches(inp, cb) {
    console.log("id: "+$(this).id);   //this is where i need to find the id
    jQuery.get("auto_suggestion.php",function(data){
        // some work here ..
        cb(res);
    });
  };
};

我试图在网上看到他们的示例和其他来源,但没有找到太多帮助。

2 个答案:

答案 0 :(得分:0)

尝试......

$(this).attr("id");

...这使用jQuery,但使用我一直使用的快速,简单的方法来获取Id属性。

答案 1 :(得分:0)

您无法从数据源功能访问元素。 this指向Dataset个对象,并且没有对input元素的引用。但是,您可以在each循环中初始化typeahead,以便可以访问当前输入元素:

$('.typeahead').each(function() {
    $(this).typeahead({
        hint: true,
        highlight: true,
        minLength: 1
    }, {
        name: 'items',
        displayKey: 'value',
        source: populateItems(this.id)
    })
});


function populateItems (id) {
    return function findMatches(inp, cb) {
        console.log("id: " + id);
        // ...
    };
};