javascript - 组合框项目不可选择

标签 javascript extjs combobox

在 ExtJS 中,我的组合框有一些相当奇怪的东西。 组合框已填充,但在某些情况下,除了前 2 个条目之外的所有条目都会被删除。 如果我停留在同一页面上并处理此屏幕上的新项目(因此将重新加载所有字段和组合框),则组合框现在已完全填充,但运行了删除功能。 奇怪的是,所有项目都在组合框中,但唯一未删除的项目实际上是可选择和可单击的。如果我单击列表中可见的任何其他项目,它不会执行任何操作(甚至组合框也不会折叠)。 可能是什么原因造成的?

我知道你们想要代码,但是发布代码是不可能的,因为我工作的公司的代码是如此巨大和复杂,以至于有太多的东西可以粘贴到这里。我只是想知道你们中是否有人遇到过类似的事情。

此外,组合框上方还有一个文本框。如果您使用组合框中的值填充文本框,组合框将跳转到正确的值。在第二次运行(我上面描述的)中,如果我输入一个在组合框中可见但不可选择的值,它不会跳转到组合框中的该值。看起来这些值只是可见的,但仅此而已。

编辑:

其他一些奇怪的行为:如果我单击组合框(这样您就可以实际键入文本)并按任何按钮,组合框将神奇地转换为正确的形式。我的意思是现在只有前两个项目可见。我没有任何监听器可以在我的组合框中执行此操作...

也许“刷新”该组合框就足够了?然而,这并不能解释为什么组合框首先会有这样的行为。在 FF 和 IE 中都可以使用。

最佳答案

没有代码,你说你不能提供,我只能猜测:看看你是否为模型定义了 idProperty,以及 idProperty 是否与其中一个字段匹配,组合的 valueField 是否与 idProperty 的值相同,并且如果您从服务器收到具有唯一 ID 的记录,则最后一次。组合配置应类似于以下内容:

Ext.define('ComboModel',{
     extend:'Ext.data.Model'
    ,idProperty:'custId'
    ,fields:[
         {name:'custId', type:'int'}
        ,{name:'custName', type:'string'}
    ]
});

Ext.define('ComboStore',{
     extend:'Ext.data.Store'
    ,model:'ComboModel'
});

Ext.create('Ext.form.field.ComboBox',{
     store:Ext.create('ComboStore')
    ,valueField:'custId'
    ,displayField:'custName'
});

当然,您很可能需要上述类的附加配置选项。对于所有组合商店记录,custId 必须是唯一的。

关于javascript - 组合框项目不可选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23915872/

相关文章:

extjs - 在 Windows 8 Metro 应用程序中使用 Sencha Touch

c# - 自定义组合框样式

javascript - 对多个警报进行编程的最佳方法

javascript - 通过 Websocket 到 WebGL 与 Canvas 的图像传输,也许还可以与工作人员一起传输

java - 如何鼠标悬停然后需要单击选项卡-Selenium WebDriver

javascript - Extjs 4.1 - 禁用文本字段的粘贴事件

javascript - 如何将 HtmlAgilityPack.CssSelectors 公开到 ClearScript 中

javascript - 显示 "wrong"值的 HTML 选择选项

c# - 如何防止/取消 c# 中组合框的值更改?

WPF 组合框 : background color when disabled