javascript - ExtJS ComboBox triggerAction : "all" really do? 是什么意思

标签 javascript combobox extjs

我尝试创建一个简单的组合框:

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

但是这样写它的行为很奇怪:

  • 当您第一次弹出下拉菜单时,它会提供三个选项。
  • 您选择一个。
  • 但是当您之后尝试更改选择时,下拉菜单仅提供一个选项 - 您之前选择的选项。

我将我的代码与 samples 进行了比较在 Ext 主页上发现添加 triggerAction: "all" 解决了我的问题:

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

triggerAction 的 ExtJS 文档并没有告诉我很多信息:

The action to execute when the trigger is clicked. Use 'all' to run the query specified by the allQuery config option (defaults to 'query')

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

那么这个triggerAction到底有什么作用呢?

当我只想要一个简单的静态组合框时,将其设置为“all”真的应该做什么吗?

最佳答案

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

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

相关文章:

extjs - 根据内容自动调整 Ext JS 窗口大小,最大为 maxHeight

javascript - meteor mongodb _id 在插入后发生变化(以及 UUID 属性)

javascript - 在CSS中做一个下拉按钮

javascript - Ajax 响应后无法重新触发 CSS 3 动画

jquery - 手动更改底层选择后如何触发 jqueryui 组合框的更改?

javascript - 将 jqWidgets 组合框限制为值列表

c# - 同一列中包含多个信息的 DataGridview

javascript - 输入新 URL(在同一域中)后如何激活 onclick 事件?

javascript - 如何在 JavaScript 中过滤这些搜索结果?

javascript - ExtJs - 服务器端?