如何解决关于Jquery AutoComplete建议的问题
我遇到了问题,但无法解决。
因此,在一个论坛上,我想创建一个脚本,当您输入关键字:stick时,该脚本允许您在建议框中选择标签。
但是问题在于该脚本始终会检测到“:”,因此当我键入其他单词时,它仍然显示建议,我将链接与完整的代码放在这里https://jsfiddle.net/z4v689fj/10/。
$(document).ready(function(){
$("head link[rel='stylesheet']").last().after("<link rel='stylesheet' href='//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css' type='text/css' media='screen'>");
var jsonRisitas =
[{"label":" :risitas :pixel :risi :reso :reso","value":"http://image.noelshack.com/fichiers/2017/19/1494259658-pixistas2.png"},{"label":" :risitas :possedo :risi :issou :deforme :yeux :possede :demon :defonce :jpp :zoom :clown :cirque :circus :circus","value":"http://image.noelshack.com/fichiers/2019/22/2/1559078100-1558768973-risitas-possedo-clown.png"}];
function split( val ) {
return val.split( / \s*/ );
}
function extractLast( term ) {
return split( term ).pop();
}
$( "#message_topic" )
// don't navigate away from the field on tab when selecting an item
.on( "keydown",function( event ) {
if ( event.keyCode === $.ui.keyCode.TAB &&
$( this ).autocomplete( "instance" ).menu.active ) {
event.preventDefault();
}
})
.autocomplete({
minLength: 4,source: function( request,response ) {
if (request.term.indexOf(":") >= 0) {
console.log(request.term);
// delegate back to autocomplete,but extract the last term
response( $.ui.autocomplete.filter(
jsonRisitas,extractLast( request.term ) ) );
}},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;
}
}).autocomplete( "instance" )._renderItem = function( ul,item ) {
$('.suggestion').css({
'height' : '80px'
});
return $( "<li>" )
.append( "<div class='suggestion'><img width='50px' src='" + item.value + "'/>" + item.label+"</div>" )
.appendTo( ul );
};
/*.autocomplete( "instance" )._renderItem = function( ul,item ) {
return $( "<li><div><img width='50px' src='"+item.value+"'><span>"+item.value+"</span></div></li>" ).appendTo( ul );
};*/
})
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.11.4/jquery-ui.min.js"></script>
<textarea id="message_topic"></textarea>
这些词如下:胸膜,里尔,risitas等。
如何仅在输入“:” + 3个字母并且不始终显示时才显示建议?
例如,我没有放入“:”,但它仍然显示,因为图像的链接中有“:”:/ Example 还有一个问题,我只想显示建议中的图像,而不显示标签,我已经删除了标签名称,它不起作用:/。
先谢谢您。 史蒂夫
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。