2015-05-15 33 views
0

我有一个具有远程存储的组合框。当用户写下三个或更多字母时,我看到一个服务器请求,但我想在用户点击Enter按钮时触发此请求。此时我的组合具有以下属性:使用ComboBox进行远程查询输入命中

forceSelection:true, 
enableKeyEvents:true, 
listeners:{ 
    keyup:function(){ // I prevent "normal" server requests in this manner 
     return false; 
    }, 
    keydown:function(){ 
     return false; 
    }, 
    keypress: function() { 
     return false; 
    }, 
    specialkey:function(a,b,c){ 
     if(b.keyCode==13){ 
      // But at this moment I want to make a request   
     } 
    } 
} 

回答

1

您可以将'minChars'设置为非常高的值,以禁用键入时的值选择。 http://docs.sencha.com/extjs/4.2.3/#!/api/Ext.form.field.ComboBox-cfg-minChars

,然后展开回车键组合框中选择:

forceSelection:true, 
enableKeyEvents:true, 
// show value selection after typing 999 chars 
minChars: 999, 
// set triggerAction to 'query' to show only filtered results after pressing enter 
triggerAction: 'query', 
listeners: { 
    specialkey: function (a, b, c) { 
     if (b.keyCode == 13){ 
      // a is combobox 
      a.expand(); 
     } 
    } 
} 
+0

非常完美的解决方案! – Jacobian