我试图创建一个简单的ComboBox:

var combo1 = new Ext.form.ComboBox({
  store: [1,2,3],
  renderTo: document.body
});

但是这样写,它的行为很奇怪:
  • 第一次弹出打开下拉菜单时,它提供三个选择。
  • 您选择一个。
  • 但是,当您之后尝试更改选择时,下拉列表仅提供一种选择-先前选择的一种。

  • 我将代码与Ext主页上的samples进行了比较,发现添加triggerAction: "all"可以解决我的问题:
    var combo2 = new Ext.form.ComboBox({
      triggerAction: "all",
      store: [1,2,3],
      renderTo: document.body
    });
    
    triggerAction的ExtJS文档并不能告诉我很多:



    我尚未指定allQuery选项。实际上,我根本不想对服务器执行查询。

    那么,这个triggerAction到底做什么呢?

    当我只想要一个简单的静态组合框时,是否应该将其设置为"all"呢?

    最佳答案

    选择一个项目后,将过滤列表以匹配当前文本值。在您的情况下,它始终是精确选择的值,但对于多字符值更明显(请参见Ext中的状态名称示例)。如果删除所选值,则下拉菜单将恢复为所有值。 triggerAction:'all'表示不过滤,始终显示所有值。

    关于javascript - ExtJS ComboBox triggerAction是什么: “all” really do?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/986345/

    10-10 19:43