Javascript jQuery-UI自动完成问题
使用 我的函数看起来是这样的Javascript jQuery-UI自动完成问题,javascript,jquery,jquery-ui,autocomplete,getjson,Javascript,Jquery,Jquery Ui,Autocomplete,Getjson,使用 我的函数看起来是这样的 mailto_input.bind( "keydown", function( event ) { if ( event.keyCode === $.ui.keyCode.TAB && $( this ).data( "autocomplete" ).menu.active ) { event.preventDefault(); } }).autocomplete({ source: function( req
mailto_input.bind( "keydown", function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB && $( this ).data( "autocomplete" ).menu.active ) {
event.preventDefault();
}
}).autocomplete({
source: function( request, response ) {
$.getJSON( "core/search.php", {
term: extractLast( request.term )
}, response );
},
search: function(){
// custom minLength
var term = extractLast( this.value );
if ( term.length < 2 ) {
return false;
}
},
focus: function() {
// prevent value inserted on focus
return false;
},
select: function( event, ui ) {
var terms = split( this.value );
// remove the current input
terms.pop();
// add the selected item
terms.push( ui.item.value );
// add placeholder to get the comma-and-space at the end
terms.push( "" );
this.value = terms.join( "; " );
return false;
}
});
我试图实现的是,限制用户只选择服务器端数据。我的意思是,我只想在PHP端有任何结果的情况下向输入框中添加术语。否则,通知用户,服务器中并没有类似于此术语的数据
例如
我想防止添加像sdsf这样的词,在这种情况下,服务器的响应像[]。换句话说,仅当服务器端至少有一个建议时才添加。否则保持原样,并将问题通知用户
可能吗?我怎样才能达到这个结果呢?试试看。它正是你想要做的
此外,这里还有一个确保它是您想要的…好吧,他们这样做的方式是用标签交换跨度
<div id="taginput">
<span id="tags">
<span>tagname</span>
</span>
<input type="text" id="tagtext"/>
</div>
您必须这样做,以便将建议作为跨度添加到之前:
$('.suggestion_element_class').click(function() {
textof = this.text();
$('#tags').append('<span>' + textof + '</span>');
$('#tagtext').val('');
});
当然,您必须首先获得建议和所有内容。您的意思是像stackoverflow处理标记一样?尝试查看stackoverflow页面,但无法找到我需要的内容。当您键入诸如gsfs之类的内容时,它不会阻止用户键入gsfs,而用户实际上无法将其作为标记输入。只有PHP返回的结果才会转换为标记。当用户提交表单时,您可以轻松筛选出非标记条目。