Javascript Jquery自动完成获取值

Javascript Jquery自动完成获取值,javascript,jquery,autocomplete,Javascript,Jquery,Autocomplete,自动完成工作正常。我放置了一个隐藏值,用于保存通过此方法自动完成的值 我的代码: $("#cityOp").autocomplete({ source : function(request, response) { var city_value = jQuery("#cityOp").val(); $.ajax({ url: "city.html", dataType: "json

自动完成工作正常。我放置了一个隐藏值,用于保存通过此方法自动完成的值 我的代码:

$("#cityOp").autocomplete({
        source : function(request, response) {      

        var city_value = jQuery("#cityOp").val();


        $.ajax({
            url: "city.html",

            dataType: "json", 
            data : {
                filter : city_value
            },           


            success : function(data) {

                response(jQuery.map(data.cities,function(item) {
                                    return {
                                        value : item.locationName,
                                        key : item.locationId

                                    };
                                }));
                },
select : function(event, ui) {

         $("#theHidden").val(ui.item.key) ;
    }

    }); 
然后我想获取这个位置Id来保存位置的值,所以我 尝试了以下方法:

save(){
var locationValue=$("#theHidden").val(); 
//other saving codes
}
但我这里的位置值是未定义的

如何在save函数中获取此隐藏值?
自动完成功能位于ready上的文档中,保存功能位于js中

在$ajax方法的响应中,您将数据映射到只有两个属性(value和key)的JSON对象

然后,在选择中,您使用的是一个不再存在的属性

如果希望这些原始值仍然存在,那么还应该映射它们。或者,您可以将id保存到隐藏字段,如下所示:

$("#theHidden").val(ui.item.key);
如果这对你不起作用,请告诉我。

这个问题解决了

select : function(event, ui) {

        setLocationValue(ui.item.key);
    }
在js中

var locationValue;

function setLocationValue(value){
    locationValue=value;
}

选择功能正在启动吗?放置警报(ui.item.locationId);在选择功能中。我不会将所选值放在单独的控件中,而是调用autocomplete:$(this.data(“value”,ui.item.locationId);您的
save()
函数定义是否正确?使用
函数
关键字?值是否输入并正确设置?如果它被设置为未定义,您可以在浏览器调试器中进行检查。@elrado我在选择函数中没有使用我更改的$(“#theHidden”).val(ui.item.locationId);转换成$(“#theHidden”).val(ui.item.key);将警报设置为警报(ui.item.key);然后警报显示隐藏值,但未进入保存功能解决方案?我的问题是,在保存函数中如何获得隐藏值?我将var locationValue=$(“#theHidden”).val(ui.item.key)放在类似的位置;然后得到“ui未定义”。