2011-06-21 44 views
17

我想知道如何抓住jquery自动完成上选定项目的文本值。jquery自动完成获取选定的项目文本

我已初始化的jquery如下:

$(document).ready(function(){ 
    $("input#autocomplete").autocomplete({ 
     source: postcodelist, 
     select: function (event, ui) { 
      AutoCompleteSelectHandler(event, ui) 
     } 
    }); 
}); 

我已经创建了一个功能函数AutoCompleteSelectHandler(事件,UI){}。

这个函数里面我想要一些额外的处理来将数据提供到正确的文本框中,但我无法弄清楚如何获取所选项目的文本值。

我做了一些谷歌和尝试的例子,但我似乎无法得到它的工作。

任何帮助将不胜感激。

非常感谢。

+1

和正是你需要做什么,我们可以帮助 –

回答

30

ui参数有一个item属性与所选文本

function AutoCompleteSelectHandler(event, ui) 
{    
    var selectedObj = ui.item;    
    alert(selectedObj.value); 
} 

来源:http://jqueryui.com/demos/autocomplete/#event-select转到标签“事件”,然后事件“选择”

+0

非常感谢你!拯救生命! – rlee923

+0

这将是什么全面实施? –

1

你只是抓住从输入相同的方式的价值,你会如果用户键入它在自理:

$('input#autocomplete').val() 
+2

这会给你参考什么用户输入,而不是选定的值。 – rlee923

+0

也许我误解了你的问题?我以为你在寻找用户使用自动完成选择的选项。一旦他们选择,它就会将它放入输入中,并且可以像用户输入它一样进行检索。 – kinakuta

4

您不需要将匿名函数应用为一个换行,你可以直接传递函数ref。

$(document).ready(function(){ 
    $("input#autocomplete").autocomplete({ 
     source: postcodelist, 
     select: AutoCompleteSelectHandler 
    }); 
}); 

在该方法中,您可以访问thisevent.target获得的电流值,这两个值所引用的输入元素:

function AutoCompleteSelectHandler(event, ui) { 
    alert($(event.target).val()); 
    alert($(this).val()); 

    // alert(this.value); 
} 
+0

为什么不从传递到方法中的'ui'参数中获取它,就像我在jquery ui的文档中写的那样? – GeertvdC

+0

aww我不知道你不必指定参数。谢谢你的提示! – rlee923

13
// list of clients 
     $("#client").autocomplete({ 
     source: "lib/getClientList.php", 
     minLength: 2, 
     select: function(event, ui) { 
      alert(ui.item.value); 
      } 
     }) 

;

ui.item.value是jQuery的使用如果您发布的HTML标记的值赋给输入

+0

是否可以获取所选项目的索引? – FrenkyB