Jquery自动完成获取值

时间:2012-02-20 05:43:28

标签: javascript jquery autocomplete

自动完成工作正常。我通过此方法设置了一个隐藏值来保存auto complete的值 我的代码:

$("#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
}

但我到这里locationValue未定义。

我如何在保存功能中获得此隐藏值? 自动完成功能在文档中就绪,保存功能在js中。

2 个答案:

答案 0 :(得分:1)

这解决了

select : function(event, ui) {

        setLocationValue(ui.item.key);
    }

在js

var locationValue;

function setLocationValue(value){
    locationValue=value;
}

答案 1 :(得分:0)

在$ ajax方法的响应中,您将数据映射到只有两个属性,值和键的JSON对象。

然后,在select中,您正在使用不再存在的属性。

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

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

如果这对您不起作用,请告诉我。