我有一个自定义文本框,它为我提供了一个文本框,旁边有一个文本框中的按钮。
(运行代码,你会看到我的意思)。
唯一的问题是如果我将禁用状态设置为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
]
}]
});
答案 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
的配置。
希望它有所帮助。