gpt4 book ai didi

当用户未从下拉列表中选择选项时,jQuery ui 自动完成

转载 作者:行者123 更新时间:2023-12-03 21:32:29 24 4
gpt4 key购买 nike

使用 jquery autocomplete plugin 时,当用户没有选择列表中的项目,而是键入有效值并按 Tab 键离开时,您会怎么做?

例如,当自动完成列表包含:

Cat
Dog
Fish

用户输入 cat,但没有从自动完成的下拉列表中选择 Cat,而是按 Tab 键离开。因为他们没有从列表中选择任何项目,所以自动完成选择事件不会触发,我们失去了响应它的机会:

$('#Animal').autocomplete({
source: url,
minlength: 1,
select: function (event, ui) {
$("#Animal").val(ui.item.value);
changeUsersAnimal(ui.item.id);
}
});

我该如何处理这种情况?

最佳答案

您可能正在寻找Scott González' autoSelect extension 。如果用户输入有效值,只需在页面上包含此扩展即可触发 select 事件,并且不需要您进行任何更改:

/*
* jQuery UI Autocomplete Auto Select Extension
*
* Copyright 2010, Scott González (http://scottgonzalez.com)
* Dual licensed under the MIT or GPL Version 2 licenses.
*
* http://github.com/scottgonzalez/jquery-ui-extensions
*/
(function( $ ) {

$.ui.autocomplete.prototype.options.autoSelect = true;
$( ".ui-autocomplete-input" ).live( "blur", function( event ) {
var autocomplete = $( this ).data( "autocomplete" );
if ( !autocomplete.options.autoSelect || autocomplete.selectedItem ) { return; }

var matcher = new RegExp( "^" + $.ui.autocomplete.escapeRegex( $(this).val() ) + "$", "i" );
autocomplete.widget().children( ".ui-menu-item" ).each(function() {
var item = $( this ).data( "item.autocomplete" );
if ( matcher.test( item.label || item.value || item ) ) {
autocomplete.selectedItem = item;
return false;
}
});
if ( autocomplete.selectedItem ) {
autocomplete._trigger( "select", event, { item: autocomplete.selectedItem } );
}
});

}( jQuery ));

以下是使用扩展程序的示例:http://jsfiddle.net/vFWUt/226/

关于当用户未从下拉列表中选择选项时,jQuery ui 自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10405932/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com