我已经使用JQuery实现了自动完成功能,当我选择数据时,它会存储在结果表中,选择之后,我需要清除我无法完成的自动完成文本框。搜索相同并获得此Clear text box in Jquery Autocomplete after selection,但我不知道将它放在哪里以及在firebug中,我在函数(事件,ui)中出错。 请帮忙...我的代码如下。
$(function() {
function log( message ) {
$( "<div>" ).text( message ).prependTo( "#log" ).click(function(o){
$(this).remove();
});
$( "#log" ).scrollTop( 0 );
}
$( "#poolName" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "/DataWeb/getPoolName",
type : 'post',
dataType: 'json',
data: { name_startsWith: request.term },
success: function( data ) {
console.log(data);
response( $.map( data, function( item ) {
return {
label: item.poolName,
value: item.poolName
}
}));
}
});
},
minLength: 1,
select: function( event, ui ) {
log( ui.item ?
ui.item.label :
"Nothing selected, input was " + this.value);
},
open: function() {
$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
},
close: function() {
$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
}
});
});
答案 0 :(得分:3)
$( "#poolName" ).autocomplete({
source: function( request, response ) {
$.ajax({
url: "/DataWeb/getPoolName",
type : 'post',
dataType: 'json',
data: { name_startsWith: request.term },
success: function( data ) {
console.log(data);
response( $.map( data, function( item ) {
return {
label: item.poolName,
value: item.poolName
}
}));
}
});
},
select: function (e, i) {
$('#poolName').val('');
return false;
}
,minLength: 1,
select: function( event, ui ) {
log( ui.item ?
ui.item.label :
"Nothing selected, input was " + this.value);
},
open: function() {
$( this ).removeClass( "ui-corner-all" ).addClass( "ui-corner-top" );
},
close: function() {
$( this ).removeClass( "ui-corner-top" ).addClass( "ui-corner-all" );
}
});
});
答案 1 :(得分:2)
尝试在select:子句中使用return false;
,
select: function( event, ui ) {
log( ui.item ?
ui.item.label :
"Nothing selected, input was " + this.value);
return false;
},
答案 2 :(得分:1)
我试过这个文档.getElementById(“poolName”)。value =“”;它正在发挥作用。
function log( message ) {
document.getElementById("poolName").value="";
$( "<div>" ).text( message ).prependTo( "#log" ).click(function(o){
$(this).remove();
});
$( "#log" ).scrollTop( 0 );
}
答案 3 :(得分:0)
其他答案的问题在于它没有进行preventDefault调用。
这将有效:
select: function (e, i) {
e.preventDefault();
$('#poolName').val('');
return false;
}
答案 4 :(得分:0)
我发现我必须同时清除该字段并返回false
select: function(ev, ui) {
console.log(this, ui.item)
$(this).val('')
return false
},