首页 > 解决方案 > 输入组合框时值消失

问题描述

我有一个组合框。当我尝试搜索名称时,我输入的值会自动消失,并且搜索不正确。但如果我从下拉列表中选择,那么它工作正常。

问题:

  1. 在组合框字段中放入某些内容后,它会自动消失。
  2. 用户无法通过插入前几个字母来搜索名称。
  3. 名字不是按照优先级来的。

我已经尝试过 typeAhead,但它不起作用。

代码:

          xtype: 'combobox',
                    itemId: 'abc_VendorName',
                    inputId: 'abc_VendorName',
                    cls: 'FieldLabel',
                    margin: '0 0 3 0',
                    fieldLabel: 'Vendor Name:',
                    labelSeparator: '',                   
                    msgTarget: 'side',
                    displayField: 'namewithSLID',
                    valueField: 'code',
                    matchFieldWidth: false,
                    forceSelection: true,
                    enableKeyEvents: true,
                    minChars: 1,
                    pageSize: 25,
                    listeners: {
                        change: 'onVendorNameChange',
                        blur: 'onVendorNameBlur'
                    },

两位听众——

onVendorNameChange: function (combo, newValue, oldValue, eOpts) {
        var me = this;
        var view = me.getView();
        var viewmodel = me.getViewModel();

        if (combo.getValue() > 0) {
            var selectedRecord = combo.selection;
            if (selectedRecord == null || selectedRecord === undefined) {
                return;
            }

            var alias = selectedRecord.get('abbreviation');
            var finslCode = selectedRecord.get('code');

            view.down("#dspl_VendorAlias").setValue(alias);

            viewmodel.get('theRecord').set('finslAbbreviation', selectedRecord.get('abbreviation'));
            viewmodel.get('theRecord').set('finslSLID', selectedRecord.get('slid'));

            me.implementVendorItemMarkup(finslCode);
        }
    },


onVendorNameBlur: function (combo, event, eOpts) {
        var me = this;
        var view = me.getView();
        var viewmodel = me.getViewModel();

        if (combo.getValue() == null) {
            view.down("#dspl_VendorAlias").setValue(null);
            viewmodel.get('theRecord').set('finslAbbreviation', null);
            viewmodel.get('theRecord').set('finslSLID', null);
        }
    },

标签: extjs

解决方案


推荐阅读