我是一个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}
})
}
}
}
}]
我是朝着正确的方向吗?
答案 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()
以提交任何更改。