0

我有一个自定义文本框,它给了我一个文本框,旁边的文本字段中有一个按钮。(运行代码你会明白我的意思)。唯一的问题是,如果我将禁用状态设置为 false,我会收到一条错误消息:
Uncaught TypeError: Object [object Object] has no method 'getValue'
但如果我将其设置为 true,一切都很好。

这是我的代码:

    var disabled = false;

    var _oInput = Ext.create("Ext.field.Text", {
        flex: 8,
        labelWidth:0,
        labelAlign: "right",
        value: self.psValue,

    });

    var _oSenchaObject = Ext.create("Ext.field.Text",{
        label: "test",
        disabled: disabled,  //This gives me the error
        component: {
          xtype: 'container', 
          layout: 'hbox', 
          items: [
              _oInput, 
              {
                xtype: 'button', 
                flex: 1, 
                text: '...',
                //disabled: disabled,
              }
          ]
        },
    });

    var formPanelComment = Ext.create('Ext.form.Panel', {
        title:"Comments",
        items: [{
            xtype: 'fieldset',
            title: "Comments",
            items: [
                _oSenchaObject
            ]
        }]
    });
4

1 回答 1

1

好问题。:)

这是因为在您定义“自定义” textfield(包含带有内部按钮的普通文本字段)时发生冲突。

看看你的代码片段,给你一个错误的行是:

var _oSenchaObject = Ext.create("Ext.field.Text",{
        ...
        disabled: disabled,  //This gives me the error
        component: {
          ...
        },
    });

在这里,disabledconfig 应用于子组件(在componentconfig 中定义),但 Sencha Touch 不知道如何正确禁用您的文本字段,禁用您的内部容器(其中包含另一个字段和按钮)。我想这类似于错误或框架限制。

因此,解决方案只是disabled为您的每个单身孩子设置配置。在上面的示例中,只需将该行移至_oInput's config.

希望能帮助到你。

于 2012-05-31T08:22:28.520 回答