0

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

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

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

4

1 回答 1

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);
                    }
                }
            }
        }
于 2013-08-13T05:00:58.430 回答