ExtJS 组合框:值字段在 postdata 中不可用

Posted

技术标签:

【中文标题】ExtJS 组合框:值字段在 postdata 中不可用【英文标题】:ExtJS combobox : valuefield is not avaialble in postdata 【发布时间】:2011-03-31 10:10:10 【问题描述】:

我在后端有 extjs 表单和 php,我在其中创建了组合框,

我可以在组合框中设置值,但是当我提交表单时,我会在发布数据中获取显示字段,如果我手动更改组合框的值,即从“二”到“一”,那么组合的 valuefield 在 post 数据中可用, 甚至 setRawValue 也给出了相同的结果。 这是我的代码:

var exampleData = [[1,'one'],[2,'two'],[3,'three']];

   var cmbJProject = new Ext.form.ComboBox(
        width          : 120,
        hiddenName     : 'project',
        store          : new Ext.data.ArrayStore(
                         fields : ['value', 'name'],
                         data   : exampleData 
                        ),
        valueField     : 'value',
        displayField   : 'name',
        typeAhead      : false,
        mode           : 'local',
        forceSelection : true,
        triggerAction  : 'all',
        selectOnFocus  : true,
        id             : 'project1',
        editable       : false
    );


    cmbJProject.setValue('two');

【问题讨论】:

【参考方案1】:

引用Ext.form.ComboBox#setValue:

将指定的值设置到字段中。如果该值找到匹配项,则相应的记录文本将显示在该字段中。如果该值与现有项目的数据值不匹配,并且定义了 valueNotFoundText 配置选项,它将显示为默认字段文本。否则,该字段将为空白(尽管仍会设置该值)。

它的行为似乎与描述的一样。试试:

cmbJProject.setValue(2);

【讨论】:

cmbJProject.setValue(2);通过这样做,它在显示字段中设置值“2”,但我想在值字段中设置它 cmbJProject.setValue(2,'two');搞砸了..!

以上是关于ExtJS 组合框:值字段在 postdata 中不可用的主要内容,如果未能解决你的问题,请参考以下文章

如何让组合框选择与 ExtJS6 中显示的值不同的值?

在 ExtJs 中本地过滤组合框远程存储

基于 extjs 网格中的另一个组合框填充字段

加载后,Extjs 在组合框存储中添加选项

如果名称中没有 [],ExtJS 组合框仅从 JSON 设置值

ExtJS 5 组合框 - 提交值和文本