ExtJS Textarea - 自动保存用户输入的内容
我是 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果您需要缓冲区,请将一些
ref
放入文本区域,然后调用onMyTextareaKeyup
包含您提供的用于执行请求的代码。有关缓冲区的更多信息可以在 API。If you need a buffer, put some
ref
to the textarea, then callwhere
onMyTextareaKeyup
contains the code that you provided to do the request. More info on buffer can be found on API.您应该使用两个事件:一个关键事件和一个模糊事件(模糊、更改或有效)
然后填充“按键命中”缓冲区,如果已满则将整个字段写回并重置缓冲区。如果模糊事件被执行,还要写回整个字段。
就我个人而言,我正在使用进行写入和写入的商店。为我更新操作。所以我只需要修改商店中的一条记录即可。
为此,您只需使用
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 callsave()
on the store to submit any changes.