如何识别extjs4中是否修改了表单

时间:2013-08-13 04:54:13

标签: forms extjs4

我在extjs4工作。我有多个文本框,单选按钮和一些更多元素的表单。假设我单击修改表单。如果用户在表单中进行了一些编辑,那么我想显示消息框窗口,以便确认保存用户所做的更改。如果用户在没有任何修改的情况下关闭表单,那么该消息框不应该出现。我试图使用表单的dirtychange事件 -

me.getForm().on('dirtychange', function(form, isDirty) {
             console.log(form.events); 
             if( isDirty ) {
                    isChanged=true;
                }
                else {
                    isChanged=false;
                }
            });

但是它的设置isChanged变量始终为true,尽管表单未被修改。 那么如何识别表单是否被修改,以便我可以显示确认消息框。

1 个答案:

答案 0 :(得分:0)

您可以使用Ext.data.Model-property-dirty来确定记录是否已被修改。

form.getRecord().dirty

如果您的记录在没有进行任何修改的情况下是脏的,您可以尝试这样做以查找哪个字段是脏的。

        if (form.isDirty()) {
            var fields = form.getForm().getFields().items;
            for (var i=0; i<fields.length; i++) {
                if (fields[i].isDirty()) {
                    if (Ext.isDefined(fields[i].name)) {
                        alert(fields[i].name);
                    }
                }
            }
        }