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未定义”。