ExtJS Textarea - автоматически сохранять содержимое при вводе пользователем - PullRequest
3 голосов
/ 30 сентября 2011

Я новичок в ExtJS и мне нужно отправить содержимое ExtJS Textarea на внутренний сервер для сохранения (средство автосохранения) по мере ввода пользователем. Есть ли способ сделать это. В настоящее время я зарегистрировал прослушиватель keyup для сбора входного значения, как показано ниже:

items: [{
    xtype: 'textarea',
    id: 'notes',
    anchor: '100%',
    height: 270,
    msgTarget: 'under',
    fieldLabel: 'Note',
    enableKeyEvents: true,
    listeners: {
        'keyup': function(textarea, event) {
            var v= textarea.getValue();
            Ext.Ajax.request({
                url: 'buffernote.action',
                params: {value: v}
            })
        }
    }
}
}]

Я в правильном направлении?

Ответы [ 2 ]

2 голосов
/ 01 октября 2011

Если вам нужен буфер, поместите немного ref в текстовую область, затем вызовите

this.mon(myTextarea, 'keyup', this.onMyTextareaKeyup, this, {buffer: 1000});

, где onMyTextareaKeyup содержит код, который вы предоставили для выполнения запроса.Более подробную информацию о буфере можно найти в API .

1 голос
/ 30 сентября 2011

Вы должны использовать два события: одно ключевое событие и одно размытие (размытие, изменение или действительное значение). Затем заполните буфер «нажатия клавиши» и запишите все поле обратно, если оно заполнено, и сбросьте буфер.Также запишите все поле назад, если событие размытия выполнено.

Лично я пользуюсь магазинами, которые выполняют для меня действия по записи и обновлению.Поэтому мне просто нужно изменить запись в магазине.Для этого вам просто нужно поиграть с record.beginEdit() & record.endEdit() В ExtJS 4.x теперь они используют термин Ext.data.Model, но он ведет себя так же, как в ExtJS 3.x

В магазине потребуется опция autoSave: true, в противном случае вам нужно позвонить в магазин save(), чтобы отправить любые изменения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...