当您在菜单中向上或向下按下时,会调用一个内部函数,该函数会替换您在 div 中的任何内容request.term
,从而擦除您的输入,因为正如您在console.log(term)
小提琴中看到的那样,response.term
只有文本(忽略您的样式输入)。
所以在查看 jquery-ui 自动完成源代码后,就像你重写_rederItem
函数一样,我重写了_move
函数,它似乎可以工作。
这是您编辑的小提琴http://jsfiddle.net/YGP8a/1/。
希望有帮助!
编辑:
为了完整起见,这是您必须添加的内容:
$("#testDiv").data("autocomplete")._move = function( direction, event ) {
if ( !this.menu.element.is( ":visible" ) ) {
this.search( null, event );
return;
}
if ( this.menu.isFirstItem() && /^previous/.test( direction ) ||
this.menu.isLastItem() && /^next/.test( direction ) ) {
//this._value( this.term ); <-- Here it is!
this.menu.blur();
return;
}
this.menu[ direction ]( event );
}