将“disabled”配置设置为自定义Ext.field.Text时出错

时间:2012-05-31 07:40:57

标签: sencha-touch-2

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

这是我的代码:

    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
            ]
        }]
    });

1 个答案:

答案 0 :(得分:1)

好问题。 :)

这是因为您已经定义了自定义" textfield(包含带内部按钮的普通文本字段)。

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

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

此处,disabled配置应用于子组件(在component配置中定义),但Sencha Touch不知道如何正确禁用您的文本字段,禁用内部容器(包含另一个字段和按钮)。我猜它有点像bug或框架限制。

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

希望它有所帮助。