【问题标题】:jquery autocomplete get selected item textjquery自动完成获取所选项目文本
【发布时间】:2011-09-19 07:36:46
【问题描述】:

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

我已将 jquery 初始化如下:

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

我已经创建了一个函数function AutoCompleteSelectHandler(event, ui) { }。

在这个函数中,我想进行一些额外的处理以将数据输入正确的文本框,但我不知道如何获取所选项目的文本值。

我用谷歌搜索了一下并尝试了一些例子,但我似乎无法让它工作。

任何帮助将不胜感激。

非常感谢。

【问题讨论】:

  • 如果您发布 html 标记以及您需要做什么,我们可以提供帮助

标签: javascript jquery autocomplete


【解决方案1】:

ui 参数具有带有所选文本的 item 属性

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

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

【讨论】:

  • 这个的完整实现是什么?
【解决方案2】:
// list of clients
        $( "#client" ).autocomplete({
        source: "lib/getClientList.php",
        minLength: 2,
        select: function(event, ui) {
            alert(ui.item.value);
             }
        })

;

ui.item.value 是 jquery 用来为输入赋值的引用

【讨论】:

  • 是否可以获取所选项目的索引?
【解决方案3】:

不需要应用匿名函数作为wrap,直接传递函数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 );
}

【讨论】:

  • 为什么不直接从传递给方法的ui 参数中获取它,就像我在 jquery ui 文档中写的答案一样?
  • aww 我不知道您不必指定参数。感谢您的提示!
【解决方案4】:

您只需像用户自己输入一样从输入中获取值:

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

【讨论】:

  • 这会给你用户输入的内容,而不是选择的值。
  • 也许我误解了你的问题?我以为您正在寻找用户使用自动完成功能选择的选项。一旦他们选择,它就会将其放入输入中,并且可以像用户键入它一样检索它。
猜你喜欢
  • 2011-12-07
  • 1970-01-01
  • 1970-01-01
  • 2017-04-28
  • 1970-01-01
  • 2019-05-19
  • 2013-11-09
  • 2011-09-05
  • 2013-06-25
相关资源
最近更新 更多