0

私はextjs4で働いています。複数のテキストボックス、ラジオボタン、その他の要素を含むフォームがあります。フォームの変更をクリックしたとします。ユーザーがフォームで編集を行った場合、ユーザーが行った変更の保存の確認を求めるためにメッセージボックスウィンドウを表示したい.ユーザーが変更せずにフォームを閉じた場合、そのメッセージボックスは表示されるべきではありません.フォームのdirtychangeイベントを次のように使用します-

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

ただし、フォームは変更されていませんが、その設定 isChanged 変数は常に true です。確認メッセージボックスを表示できるように、フォームが変更されているかどうかを識別する方法。

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 に答える