HI, 我只是想设置一个字段值并同时禁用它。 这可以在ext js中完成吗?文档在这个问题上非常薄弱。
这样的事情会产生错误:
myForm.getForm().findField('start_date').setValue('').setDisabled(true);
我已经习惯了JQuery,它可以很好地完成这类工作,但是没有好运。
感谢您的帮助。
答案 0 :(得分:2)
实际上,Field.setValue
确实会返回对字段(docs)的引用,因此您应该可以调用setDisabled
(继承自Component)。你必须要处理其他一些问题。也许findField('start_date')
返回null。您必须确保所有返回值都符合您的预期。使用Firebug来找出错误,或者拆分语句并查看哪个调用实际上失败了。
只要返回值是对象本身(通常在文档中表示为this
),任何东西都是“可链接的”。在jQuery中,一切都在DOM元素上运行,因此它是一致的。在Ext中,您有许多具有各种行为的组件。有时链接是有意义的,有时它不会 - 只是确保你在不确定时检查文档。
答案 1 :(得分:0)
这是因为setValue()方法不返回字段对象。你不能以这种方式使用setDisabled()。
编辑:(对于那些投票不足的白痴)
来自ExtJS文档:
method: setValue(value)
Parameters:
value : Mixed
The value to set
Returns:
void
答案 2 :(得分:0)
我同意bmoeskau它应该有效,如果该字段在那里并由表单找到。我会建议你这样做以防止错误:
var field = myForm.getForm().findField('xyz');
if(field !== undefined)
{
field.setValue('');
field.setDisabled(true);
}
else
{
// Error Handling
}