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

时间:2011-09-30 08:34:42

标签: javascript extjs

我是一个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 个答案:

答案 0 :(得分:2)

如果您需要缓冲区,请将一些ref放入textarea,然后调用

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

其中onMyTextareaKeyup包含您为执行请求而提供的代码。有关缓冲区的更多信息,请参见API

答案 1 :(得分:1)

您应该使用两个事件:一个键事件和一个模糊事件(模糊,更改或有效) 然后填充'按键命中'缓冲区并在完整时写回整个字段并重置缓冲区。如果执行模糊事件,也要写回整个字段。

就我个人而言,我正在使用写作& amp;为我更新动作。所以我只需要修改商店中的记录。 这样你只需要玩record.beginEdit()& record.endEdit() 在ExtJS 4.x中,他们现在使用术语Ext.data.Model,但它的行为与ExtJS 3.x中的行为非常相似

商店将需要autoSave: true选项,否则您必须在商店中致电save()以提交任何更改。