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

发布于 2024-12-07 05:51:03 字数 600 浏览 0 评论 0原文

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

我的方向正确吗?

I'm an ExtJS newbie and need to send the contents of a ExtJS Textarea to the backend server for saving (autosave facility) as the user types in. Is there a way to do it. I've currently registered a keyup listener to collect the input value as shown below:

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}
            })
        }
    }
}
}]

Am I in the right direction?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

冰火雁神 2024-12-14 05:51:03

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

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

onMyTextareaKeyup 包含您提供的用于执行请求的代码。有关缓冲区的更多信息可以在 API

If you need a buffer, put some ref to the textarea, then call

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

where onMyTextareaKeyup contains the code that you provided to do the request. More info on buffer can be found on API.

音栖息无 2024-12-14 05:51:03

您应该使用两个事件:一个关键事件和一个模糊事件(模糊、更改或有效)
然后填充“按键命中”缓冲区,如果已满则将整个字段写回并重置缓冲区。如果模糊事件被执行,还要写回整个字段。

就我个人而言,我正在使用进行写入和写入的商店。为我更新操作。所以我只需要修改商店中的一条记录即可。
为此,您只需使用 record.beginEdit() & record.endEdit()
在 ExtJS 4.x 中,他们现在使用术语 Ext.data.Model 但它的行为与 ExtJS 3.x 中的行为大致相同

商店将需要选项 autoSave: true 否则你必须调用 < code>save() 在商店上提交任何更改。

You should use two events: one key event and one blur event (blur, change or valid)
Then fill a 'key hit' buffer and write the whole field back if full and reset the buffer. Also write the whole field back if the blur event get executed.

Personally I am using stores that do the write & updates actions for me. So I just need to modify a record in the store.
For that way you just need to play with record.beginEdit() & record.endEdit()
In ExtJS 4.x they are now using the term Ext.data.Model but it behaves much the same as in ExtJS 3.x

The store will need the option autoSave: true otherwise you have to call save() on the store to submit any changes.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文