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中。
这个解决
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);
让我知道,如果不为你工作。
我的问题是,在保存函数中如何获得隐藏值?我把像var locationValue = $(“#theHidden”)。val(ui.item.key);然后得到“用户界面未定义”。 – 2012-02-20 05:57:14
请帮帮我。任何解决方案 – 2012-02-20 06:02:41
是选择功能射击?把警报(ui.item.locationId);在选择功能。我不会把选定的值放在单独的控件中,而是调用自动完成:$(this).data(“value”,ui.item.locationId); – elrado 2012-02-20 05:45:55
你的'save()'函数是否正确定义?用'function'关键字?价值是否进入**正确设置**?它首先被设置为undefined,你可以检查你的浏览器调试器。 – gideon 2012-02-20 05:46:12
@elrado我在选择函数中有错,我改变了$(“#theHidden”)。val(ui.item.locationId);到$(“#theHidden”)。val(ui.item.key);把alert作为alert(ui.item.key);然后提示显示隐藏的值 – 2012-02-20 05:53:07