即时通讯使用jquery ui来实现自动完成功能。 mY代码看起来像这样
$(function(){
$('input[name=store]').attr('autocomplete','on');
$( "input[name=store]" ).autocomplete({
source: function( request, response ) {
//alert('hello');
$.ajax({
url: "http://localhost/dheeps/admin/calls/callback.php",
dataType: "jsonp",
data: {
sub:"searchstore",
store: request.term
},
success: function( data ) {
//alert('hello');
response( $.map( data.data, function( item ) {
//alert(item);
return {
label: item.name + (item.id1 ? ", " + item.adminName1 : "") + ", " + item.id,
value: item.id
}
}));
}
});
},
minLength: 2,
select: function( event, ui ) {
},
open: function() {
$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
//alert('helo');
},
close: function() {
$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
}
});
});
在表单的html中,我发现输入的元素autocomplete属性设置为off。这是我的代码不起作用的原因。请指导我
答案 0 :(得分:5)
以下
$('input[name=store]').attr('autocomplete','on');
此后
$( "input[name=store]" ).autocomplete({});
因为autocomplete
属性将在初始化后添加到元素。
答案 1 :(得分:4)
感谢您提供此信息。这解决了这个问题。 我认为一个简单的测试示例没有问题,这很奇怪。 然后,当我把它放入一个大项目时,它会自动被禁用。
$(function () {
var availableTags = ["One", "Two", "Three"];
$("#myinput").autocomplete({
source: availableTags
});
$("#myinput").attr('autocomplete', 'on');
});