jquery自动完成获取值

问题描述:

自动完成工作正常。我把隐藏的价值通过这种方法 我的代码自动保存完整的价值:jquery自动完成获取值

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

+1

是选择功能射击?把警报(ui.item.locationId);在选择功能。我不会把选定的值放在单独的控件中,而是调用自动完成:$(this).data(“value”,ui.item.locationId); – elrado 2012-02-20 05:45:55

+0

你的'save()'函数是否正确定义?用'function'关键字?价值是否进入**正确设置**?它首先被设置为undefined,你可以检查你的浏览器调试器。 – gideon 2012-02-20 05:46:12

+0

@elrado我在选择函数中有错,我改变了$(“#theHidden”)。val(ui.item.locationId);到$(“#theHidden”)。val(ui.item.key);把alert作为alert(ui.item.key);然后提示显示隐藏的值 – 2012-02-20 05:53:07

这个解决

select : function(event, ui) { 

     setLocationValue(ui.item.key); 
    } 

在JS

var locationValue; 

function setLocationValue(value){ 
    locationValue=value; 
} 

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

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

如果您希望这些原始值仍然存在,则还应该映射它们。另外,您也可以在ID保存到这样的隐藏字段:

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

让我知道,如果不为你工作。

+0

我的问题是,在保存函数中如何获得隐藏值?我把像var locationValue = $(“#theHidden”)。val(ui.item.key);然后得到“用户界面未定义”。 – 2012-02-20 05:57:14

+0

请帮帮我。任何解决方案 – 2012-02-20 06:02:41