AfterRender事件未完全呈现时

时间:2017-01-25 13:08:25

标签: extjs6

我想在渲染窗口后设置表单字段值。

当使用afterrender监听器时,我还没有DOM元素,所以我做了一个“警告”,并且在调用afterrender

时可以看到窗口没有完全呈现

为什么呢?如何在屏幕上弹出窗体时获取窗体的DOM元素?

ExtJS multiple listeners

listeners: {
    afterrender: function ( cmp ) {
        alert('After Render');
    },
    render: function() {
        alert('Render');
    }
}      

两个事件都会使用灰色窗口和警告消息冻结屏幕。只有当我点击“确定”时,我才能看到表格及其元素。

1 个答案:

答案 0 :(得分:0)

没关系。我正在使用“错误”的方式来做到这一点。似乎jQuery无法完成这项工作。

listeners: {
    afterrender: function ( cmp ) {
        // This will work
        alert( Ext.getCmp("displayColumn").getValue() );

        // This will NOT work
        alert( $("#displayColumn").val() );
    }
}      

检查元素我可以看到它的ID变为displayColumn-inputEl,即使我已将其命名为

    fieldLabel: 'My Form Field',
    width: 330,
    id: 'displayColumn',
    name: 'displayColumn',
    allowBlank : false,
    value : 'default value'

所以$("#displayColumn")永远找不到它。