当我尝试选择自动完成列表中的一个元素时,整个列表都会消失!一旦我尝试将鼠标移动到下拉列表中,就会发生这种情况。
我的自动填充功能:
包含js/jquery-ui-1.10.3.custom.min.js
,与jquery-ui-1.10.3.custom.less
相同。
有什么想法吗?
HTML代码:
<div id="region_box" name="region_box">
<input type="text" name="name" placeholder="<%$(language.placeholder.search_box.%b__lang)%>" id="yourCity" size="35" maxlength="50" style="width:340px;" tabindex="1">
<input id="chooseb_auto" class="choose" value="&translate("SEARCHBOX_CHOOSE_BUTTON")" type="submit">
<div class="error_label">
...
JS代码:
// Choose the city button
var both = 0;
$(".choose").live("click",function(){
for (var id in regionArray) {
if( trim(regionArray[id].name[lang]).toUpperCase() == trim($("#yourCity").val()).toUpperCase() ) {
otherRegionChoosen(id);
window.LightBox.close();
return;
}
}
..
PS:我在网站上的其他页面上有相同的自动填充功能,但它正在运行,但在目标网页上却没有
答案 0 :(得分:0)
如果您使用的是最新的jquery版本,则必须非常清楚
.data(“autocomplete”)._ renderItem = function(ul,item){}; 在此行中。
这里我们会犯错误“autocomplete” .....在 JQuery更高版本我们必须
像 .data(“ui-autocomplete”)._ renderItem = function(ul,item){};
为你我分享一些片段....请找到它,如果你有任何问题请随意我问...快乐编码!!!!!!
我认为你得到了我所说的.......
$( '#ID_YourElement')。自动完成({ 来源:功能(请求,响应){
var URL = '';
URL = "yourServiceURL";
$.ajax({
url: URL,
dataType: "json",
success: function (data2) {
response($.map(data2, function (item) {
return {
label: item.FirstName + ' ' + item.LastName,
value: item.FirstName + ' ' + item.LastName,
Data: item
}
}));
}
});
},
minLength: 2,
select: function (event, ui) {
$(this).attr("Data", JSON.stringify(ui.item.Data));
uiResult.push(ui.item.Data);
},
open: function (event, ui) {
if ($('.ui-autocomplete').find('li').length > 3) {
$('.ui-autocomplete').css('padding-right', '20px').css('width', '340px').css('max-height', '225px').css('overflow-y', 'auto').addClass('dropdown-menu');
}
else {
$('.ui-autocomplete').css('padding-right', '2px').css('width', '340px').css('max-height', '225px').css('overflow-y', 'auto').addClass('dropdown-menu');
}
$(".ui-helper-hidden-accessible").hide();
$(this).autocomplete('widget').css('z-index', 100000);
return false;
}
}).data("ui-autocomplete")._renderItem = function (ul, item) {
var html = '';
html = html + '<a href="javascript:;" tabindex="-1">';
html = html + '<div style="font-weight: 600;" class="span10">';
html = html + '<span>' + item.FirstName + ' ' + item.LastName + '</span><br>';
html = html + '<span>' + item.Email + '</span>';
html = html + '</div>';
html = html + '</a>';
return $("<li></li>").data("item.autocomplete", item).append(html).appendTo(ul);
};