Nic*_*sen 18 javascript jquery jquery-ui autocomplete
在jQuery UI Autocomplete小部件的keydown事件中,默认case语句具有以下代码:
default:
// keypress is triggered before the input value is changed
clearTimeout( self.searching );
self.searching = setTimeout(function() {
// only search if the value has changed
if ( self.term != self.element.val() ) {
self.selectedItem = null;
self.search( null, event );
}
}, self.options.delay );
break;
Run Code Online (Sandbox Code Playgroud)
从我可以看到,如果用户键入两次相同的值,上面代码的第六行将阻止执行.这在大多数时候都有意义,但在我的场景中它会导致问题.
我正在构建一个ajax应用程序,它有一个固定的标题,顶部有一个搜索输入.用户可以在搜索框中输入他们想要的任何内容,并且会弹出一个div,其搜索结果与他们的查询相匹配.如果用户键入"abc"并单击结果,则会通过ajax加载相应的页面并清除搜索框.问题是如果他们再次在'abc'中输入用户,则不会触发搜索方法,因为他们输入的内容与他们上次搜索的内容相匹配.
有没有办法在用户点击搜索结果时清除存在于窗口小部件中的self.term值?或者有没有其他方法可以解决我的问题,而无需烹饪我自己的Autocomplete小部件版本?
谢谢
Nic*_*sen 24
执行以下操作会重置上一个搜索词:
$('#AutocompleteElementID').data().autocomplete.term = null;
Run Code Online (Sandbox Code Playgroud)
如果在选择项目时执行以下操作,它将清除上一个搜索词,并使窗口小部件在再次键入相同值时执行搜索.
| 归档时间: |
|
| 查看次数: |
23824 次 |
| 最近记录: |