ExtJS Textarea -自动保存用户输入的内容

ExtJS Textarea - autosave contents on user input

本文关键字:输入 用户 保存 Textarea ExtJS      更新时间:2023-09-26

我是一个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}
            })
        }
    }
}
}]

我走对方向了吗?

如果你需要一个缓冲区,放一些ref到文本区,然后调用

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

,其中onMyTextareaKeyup包含您提供的执行请求的代码。

您应该使用两个事件:一个键事件和一个模糊事件(模糊,更改或有效)然后填充"键击"缓冲区,如果已满则将整个字段写回来并重置缓冲区。如果执行了blur事件,也要把整个字段写回来。

就我个人而言,我正在使用商店来写&为我更新动作。我只需要修改存储中的记录。要做到这一点,你只需要使用record.beginEdit() &record.endEdit()在ExtJS 4。他们现在使用的术语是ExtJS .data. model,但它的行为与ExtJS 3.x中的基本相同

商店需要autoSave: true选项,否则你必须在商店上调用save()来提交任何更改