自动完成工作正常。我通过此方法设置了一个隐藏值来保存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中。
答案 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);
如果这对您不起作用,请告诉我。