我在extjs4工作。我有多个文本框,单选按钮和一些更多元素的表单。假设我单击修改表单。如果用户在表单中进行了一些编辑,那么我想显示消息框窗口,以便确认保存用户所做的更改。如果用户在没有任何修改的情况下关闭表单,那么该消息框不应该出现。我试图使用表单的dirtychange事件 -
me.getForm().on('dirtychange', function(form, isDirty) {
console.log(form.events);
if( isDirty ) {
isChanged=true;
}
else {
isChanged=false;
}
});
但是它的设置isChanged变量始终为true,尽管表单未被修改。 那么如何识别表单是否被修改,以便我可以显示确认消息框。
答案 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);
}
}
}
}