我在 slickGrid 中有一个带有自动完成文本字段的编辑器。这看起来(简化)如下:
function AutoCompleteEditor(args) {
var $input;
this.init = function () {
$input = $("<INPUT id='tags' class='editor-text' />");
$input.appendTo(args.container);
$input.bind("keydown.nav", function (e) {
if (e.which === $.ui.keyCode.LEFT || e.which === $.ui.keyCode.RIGHT) {
e.stopImmediatePropagation();
}
if((e.which === $.ui.keyCode.DOWN) || (e.which === $.ui.keyCode.UP)){
e.stopImmediatePropagation();
}
if(e.which === $.ui.keyCode.RETURN){
e.stopImmediatePropagation();
}
})
$input.focus().select();
$input.autocomplete({
minLength: 2,
autoFocus: true,
source: function(request, response) {
.....
},
focus: function( event, ui ) {
return false;
},
select: function( event, ui ) {
event.target.value = ui.item.label;
return false;
},
open: function( event, ui ) {
$(this).autocomplete( "widget" )
.find( "ui-menu-item-alternate" )
.removeClass( "ui-menu-item-alternate" )
.end()
.find( "li.ui-menu-item:odd a" )
.addClass( "ui-menu-item-alternate" );
},
appendTo: args.container,
width: 500,
});
};
现在,我有两个问题:
1)建议列表比编辑器字段窄一点。但我希望它更宽——可能和其中最宽的物品一样宽
2)我禁用了输入字段的向上和向下箭头键,但它没有聚焦列表,因此箭头会选择建议项。
有什么想法我的代码有什么问题吗?
谢谢你的帮助