私はライブ検索コンボボックスを作成しようとしていますが、1つの小さな詳細を除いてすべてがうまく機能しています。ユーザーがコンボボックスを介して下キーと上キーを押したときに、検索メソッドを呼び出したいと思います。これは選択イベントをトリガーしますが、パイカーには選択がありません。マウスでコンボボックスアイテムを選択するか、Enterキーを押すと、selectイベントが選択されます。ボックスをナビゲートしながら、下キーと上キーで選択した値を使用してクエリを起動したいと思います。
コンボコード
searchField = new Ext.form.ComboBox({
id:'searchField',
store: queryCacheStore,
pageSize:0,
width: 780,
triggerAction:'all',
typeAhead:false,
mode:'remote',
minChars:2,
forceSelection:false,
hideTrigger:true,
enableKeyEvents:true,
queryDelay:200,
queryMode:'remote',
queryParam:'query',
queryCaching:false,
displayField:'query',
autoSelect:false,
listConfig:{
loadingText: 'Searching...',
// Custom rendering template for each item
getInnerTpl: function() {
return '<div class="search-item">' +
'{query}' +
'</div>';
}
},
listeners: {
specialkey:function (field, e) {
if (e.getKey() == e.UP || e.getKey() == e.DOWN) {
}
},
select:function (combo, selection) {
var post = selection[0];
searchField.setValue(post.get('query'));
requestAccessList.runSearch();
},
focus:function (combo, event, opts) {
combo.store.proxy.extraParams = {
'lcm':true,
'type':RequestAccess.OBJECT_TYPE
}
}
}
});
そうするとき
select:function (combo, selection) {
下矢印キーまたは上矢印キーで呼び出された場合、選択はnullになります。Enterキーまたはマウスクリックで呼び出されると、コンボボックスの選択肢が強調表示されます。だから問題は、矢印キーイベントからコンボボックスの値を取得するにはどうすればよいですか?