jQuery jsonp自动完成不可见下拉项
问题是所有下拉项都是不可见的。自动完成工作,我得到项目,我可以选择它们,输入中的一个改变焦点,光标变为指针悬停在下拉列表中的项目上。我想这是css的问题,但我已经几个小时没想到了 下面是我的ajax和自动完成。一些注释:有一个data.shift()来删除第一项(我在下一步中需要一个变量,它不会造成任何伤害)。在选择时,将填充两个隐藏输入,当前一个已设置并正确填充jQuery jsonp自动完成不可见下拉项,jquery,ajax,jquery-ui,autocomplete,jquery-ui-autocomplete,Jquery,Ajax,Jquery Ui,Autocomplete,Jquery Ui Autocomplete,问题是所有下拉项都是不可见的。自动完成工作,我得到项目,我可以选择它们,输入中的一个改变焦点,光标变为指针悬停在下拉列表中的项目上。我想这是css的问题,但我已经几个小时没想到了 下面是我的ajax和自动完成。一些注释:有一个data.shift()来删除第一项(我在下一步中需要一个变量,它不会造成任何伤害)。在选择时,将填充两个隐藏输入,当前一个已设置并正确填充 <script src="//code.jquery.com/jquery-1.10.2.js"></script
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
我认为设置是正确的,它可以工作。只是下拉列表项不可见。。。他们可以被选择,一切都是工作,但他们不能被看到。。。有人知道如何解决这个问题吗?所以,它现在可以正常工作了。诀窍是下拉列表中的项目需要命名为标签。。可能是在某个地方写的,但我在16小时内没有想到,我正在做这个。。。因此,以下是有效的方法: 服务器发送以下字符串:
([{"tz": "Europe/Bratislava", "label": "Banovce nad Bebravou", "latdeg": "48",
"lonmin":15, "londeg": "18", "latmin": 43}, {"tz": "Europe/Bratislava", "label":
"Banska Bystrica", "latdeg": "48", "lonmin": 9, "londeg": "19", "latmin": 44}, {"tz":
"Europe/Bratislava", "label": "Bardejov", "latdeg": "49", "lonmin": 16, "londeg":
"21", "latmin": 17}, {"tz": "Europe/Bratislava", "label": "Bratislava", "latdeg":
"48", "lonmin": 6, "londeg": "17", "latmin": 8}, {"tz": "Europe/Bratislava", "label":
"Brezno", "latdeg": "48", "lonmin": 38, "londeg": "19", "latmin": 48}])
所以这个城市现在被称为“标签”。这是最重要的。focus和select的更改如下所示:
([{"tz": "Europe/Bratislava", "city": "Handlova", "latmin": 43, "lon": "18E45",
"latdeg": "48"}, {"tz": "Europe/Bratislava", "city": "Hlohovec", "latmin": 25,
"lon": "17E48", "latdeg": "48"}, {"tz": "Europe/Bratislava", "city": "Humenne",
"latmin": 56, "lon": "21E54", "latdeg": "48"}])
success: function( data ) {
response (data);
}
});
},
focus: function( event, ui ) {
$( "#id_city" ).val( ui.item.label );
return false;
},
select: function( event, ui ) {
$('#id_city').val(ui.item.label);
$('#id_latdeg').val(ui.item.latdeg);
return false;
},
});
所以,它现在应该可以正常工作了。诀窍是下拉列表中的项目需要命名为标签。。可能是在某个地方写的,但我在16小时内没有想到,我正在做这个。。。因此,以下是有效的方法: 服务器发送以下字符串:
([{"tz": "Europe/Bratislava", "label": "Banovce nad Bebravou", "latdeg": "48",
"lonmin":15, "londeg": "18", "latmin": 43}, {"tz": "Europe/Bratislava", "label":
"Banska Bystrica", "latdeg": "48", "lonmin": 9, "londeg": "19", "latmin": 44}, {"tz":
"Europe/Bratislava", "label": "Bardejov", "latdeg": "49", "lonmin": 16, "londeg":
"21", "latmin": 17}, {"tz": "Europe/Bratislava", "label": "Bratislava", "latdeg":
"48", "lonmin": 6, "londeg": "17", "latmin": 8}, {"tz": "Europe/Bratislava", "label":
"Brezno", "latdeg": "48", "lonmin": 38, "londeg": "19", "latmin": 48}])
所以这个城市现在被称为“标签”。这是最重要的。focus和select的更改如下所示:
([{"tz": "Europe/Bratislava", "city": "Handlova", "latmin": 43, "lon": "18E45",
"latdeg": "48"}, {"tz": "Europe/Bratislava", "city": "Hlohovec", "latmin": 25,
"lon": "17E48", "latdeg": "48"}, {"tz": "Europe/Bratislava", "city": "Humenne",
"latmin": 56, "lon": "21E54", "latdeg": "48"}])
success: function( data ) {
response (data);
}
});
},
focus: function( event, ui ) {
$( "#id_city" ).val( ui.item.label );
return false;
},
select: function( event, ui ) {
$('#id_city').val(ui.item.label);
$('#id_latdeg').val(ui.item.latdeg);
return false;
},
});
“自动完成”要求建议数组中的项具有非常特定的格式。从: 数组:数组可用于本地数据。支持两种格式:
- 字符串数组:
[“Choice1”、“Choice2”]
- 具有标签和值属性的对象数组:
[{label:“Choice1”,value:“value1”},…]
“http://example.com“
如果用户键入foo,则会向http://example.com?term=foo
数据本身可以采用与上述本地数据相同的格式。
因为您的数据与这两个要求都不匹配,所以您看不到任何结果(因为小部件不知道如何显示它们)
要解决此问题,您可以做两件事:
select
处理程序(很可能也是focus
,但实现基本相同):
示例:我使用了
city
属性作为示例,但实际上您可以在响应对象上使用任何属性。自动完成要求建议数组中的项具有非常特定的格式。从:
数组:数组可用于本地数据。支持两种格式:
- 字符串数组:
[“Choice1”、“Choice2”]
- 具有标签和值属性的对象数组:
[{label:“Choice1”,value:“value1”},…]
“http://example.com“
如果用户键入foo,则会向http://example.com?term=foo
数据本身可以采用与上述本地数据相同的格式。
因为您的数据与这两个要求都不匹配,所以您看不到任何结果(因为小部件不知道如何显示它们)
要解决此问题,您可以做两件事:
select
处理程序(很可能也是focus
,但实现基本相同):
示例:我已经使用了
city
属性作为一个例子,但实际上你可以在你的响应对象上使用任何属性。我认为这是一些css问题
,那么你为什么不发布相关的css和HTML标记呢???你为什么对此投反对票?这是jQuery手册中的一个实现,我没有任何自定义css,它只是从jQuery导入的css。不知道我应该发布什么。。。我甚至不知道e是什么