2

我在 EXT 版本 7 代码中有一个组合框。我将可编辑配置设为 true。我的代码如下。此代码类似于 sencha 文档中的代码。我刚刚将可编辑配置更改为 true 。当我们在文本字段中键入任何内容时,它会附加随机字符并且搜索不会按预期工作。这是 Ext 7 的错误吗?我无法弄清楚。其他人是否也面临类似的事情?

Ext.create({
 fullscreen: true,
 xtype: 'container',
 padding: 50,
 layout: 'vbox',
 items: [{
     xtype: 'combobox',
     label: 'Choose State',
     queryMode: 'local',
     displayField: 'name',
     valueField: 'abbr',

     // For the dropdown list
     itemTpl: '<span role="option" class="x-boundlist-item">{abbr} - {name}</span>',

     // For the content of the text field
     displayTpl: '{abbr} - {name}',

     editable: true,

     store: [
         { abbr: 'AL', name: 'Alabama' },
         { abbr: 'AK', name: 'Alaska' },
         { abbr: 'AZ', name: 'Arizona' }
     ]
 }]

});```

4

2 回答 2

1

我对现代工具包中的组合框组件有同样的问题。我在 Ext JS 版本 6.5 中尝试了相同的设置并发生了相同的错误。

我现在发现的唯一解决方法是不使用displayTpl配置。然后它按预期工作。

编辑:

我对 ext-modern-all 进行了一些调试,并找到了解决方案。如果您希望能够编辑输入字段以及使用displayTpl您必须设置的forceSelection: true. 否则,它会将您的条目视为新记录,并且会发生此错误。(https://docs.sencha.com/extjs/7.0.0/modern/Ext.field.ComboBox.html

我希望这有帮助。

于 2019-12-04T10:06:43.013 回答
0

IDK为什么选择第一个答案作为正确答案,希望我下面的答案可以最小限度地扩大您的知识。当您的问题是:

“当我们在文本字段中输入任何内容时,它会附加随机字符,并且搜索不会按预期工作。”

我想试着理解这样的陈述:

“您想尝试通过在任何匹配项目的任何位置键入随机字符来搜索商店或选项中的项目”

在这种情况下,您必须将这些属性添加到您的组合框以实现目标:

  anyMatch : true,   // this is the key
  caseSensitive : false,  //by default this has been set automatically
  minChars: 0,//by default this has been set automatically too
  forceSelection: false // set to false to allow free input to textfield with no matched result and set to true to force the user to choose one of the last matched result rather than giving the opportunity to input free text

在我们断定问题是否是错误之前,我们需要进行整个研究以获得准确的结论。不要忘记在 https://docs.sencha.com/extjs/7.0.0/modern/Ext.field.ComboBox.html上了解更多信息

希望这对您有所帮助。

于 2019-12-28T23:33:39.177 回答