自动完成标签不显示隐藏元素上的数据
Autocomplete label not displaying data on hidden Element
显示后自动完成标签不在具有 display:none 属性的隐藏输入字段上显示数据。
我正在尝试使用下面给出的脚本自动完成 MySQL 数据库中的数据。它在开发人员工具网络控制台中给出正确响应时不显示标签。当我用 .show() 方法显示 div 时,自动完成不显示标签 .
function openSearchDiv(){
$('.search').show();
}
$(document).on('focus','#search',function(){
$(this).autocomplete({
source: function( request, response ) {
$.ajax({
url: 'products.php',
dataType: 'json',
method: 'post',
data: {
name_startsWith: request.term,
type: 'type'
},
success: function( data ) {
response( $.map( data, function( item ) {
return {
label: item['id'],
value: item['id'],
data : item
}
}));
}
});
},
autoFocus: true,
minLength: 1,
select: function( event, ui ) {
// $('#player').val(ui.item.data.player);
// $('#marks').val(ui.item.data.marks);
}
});
});
.search {
display:none;
margin-top: 20px;
}
<div class="search">
<input type="text" id="search" placeholder="Type Id" />
</div>
我已经根据 display:none
属性检查了这段代码,它运行良好
因此,如果您查看 my Fiddle,我使用了 jQuery 版本 3.3.1 和 jQuery UI 版本 1.12.1 — 撰写本文时的稳定版本。
但是在 your Fiddle,您使用的是 jQuery 3.3.1 和 jQuery UI 1.11.4(旧版)。这是一个问题,因为对于 jQuery 3.3.1,您应该使用 jQuery UI 1.12.1.
如果您想使用jQuery UI 旧版,您应该使用jQuery 2.2.4 或更早的版本。 此外,在您的情况下,您应该将 appendTo
选项设置为正确的 element/selector。 示例:
$('#search').autocomplete({
appendTo: $('#search').parent()
// other options
});
我已经分叉了你的Fiddle,你可以检查我的here,我基本上省略了AJAX的东西,但我没有改变任何CSS,并使用 jQuery 2.2.4 和 jQuery UI 1.11.4.
我也分叉了分叉的 Fiddle 并将其更改为使用 jQuery 3.3.1 with jQuery UI 1.12.1。你可以看看here.
显示后自动完成标签不在具有 display:none 属性的隐藏输入字段上显示数据。
我正在尝试使用下面给出的脚本自动完成 MySQL 数据库中的数据。它在开发人员工具网络控制台中给出正确响应时不显示标签。当我用 .show() 方法显示 div 时,自动完成不显示标签 .
function openSearchDiv(){
$('.search').show();
}
$(document).on('focus','#search',function(){
$(this).autocomplete({
source: function( request, response ) {
$.ajax({
url: 'products.php',
dataType: 'json',
method: 'post',
data: {
name_startsWith: request.term,
type: 'type'
},
success: function( data ) {
response( $.map( data, function( item ) {
return {
label: item['id'],
value: item['id'],
data : item
}
}));
}
});
},
autoFocus: true,
minLength: 1,
select: function( event, ui ) {
// $('#player').val(ui.item.data.player);
// $('#marks').val(ui.item.data.marks);
}
});
});
.search {
display:none;
margin-top: 20px;
}
<div class="search">
<input type="text" id="search" placeholder="Type Id" />
</div>
我已经根据 display:none
属性检查了这段代码,它运行良好
因此,如果您查看 my Fiddle,我使用了 jQuery 版本 3.3.1 和 jQuery UI 版本 1.12.1 — 撰写本文时的稳定版本。
但是在 your Fiddle,您使用的是 jQuery 3.3.1 和 jQuery UI 1.11.4(旧版)。这是一个问题,因为对于 jQuery 3.3.1,您应该使用 jQuery UI 1.12.1.
如果您想使用jQuery UI 旧版,您应该使用jQuery 2.2.4 或更早的版本。 此外,在您的情况下,您应该将 appendTo
选项设置为正确的 element/selector。 示例:
$('#search').autocomplete({
appendTo: $('#search').parent()
// other options
});
我已经分叉了你的Fiddle,你可以检查我的here,我基本上省略了AJAX的东西,但我没有改变任何CSS,并使用 jQuery 2.2.4 和 jQuery UI 1.11.4.
我也分叉了分叉的 Fiddle 并将其更改为使用 jQuery 3.3.1 with jQuery UI 1.12.1。你可以看看here.