Extjs中textarea不支持keyup事件?

jofone 2009-07-03 09:50:19
最近做一个项目,用到Ext.form.textarea, 在监听事件中添加了keyup事件,并将enableKeyEvents属性设为true,但并不执行该事件,不知道为什么? Ext.form.textfield则没有任何问题。郁闷,哪位高手能否指点一二!谢谢!
...全文
2374 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
duni2013 2012-08-10
  • 打赏
  • 举报
回复
我今天也遇到同样的困难,一下是我的代码,也不出现提示:
var mn = new Ext.form.TextField({
name : 'searchusername',
id : "searchusername",
width : 210,
scope : this,
enableKeyEvents : true,
listeners : {
'keyup' : function(o, evt) {
alert(3);
}
}
});
NetVer 2010-07-07
  • 打赏
  • 举报
回复
enableKeyEvents: true

要把enableKeyEvents属性设置为true
shoarh 2009-08-21
  • 打赏
  • 举报
回复
加上这些试试
Ext.override(Ext.form.TextArea, {
onKeyUp : function(e){
if(!e.isNavKeyPress() || e.getKey() == e.ENTER){
this.autoSize();
}
Ext.form.TextArea.superclass.onKeyUp.call(this, e);
}
});
jofone 2009-07-05
  • 打赏
  • 举报
回复
目前我的问题还没有解决,还是谢谢你!你给的代码我测试过了,是没有问题,但把握的代码放进去就不行,change事件可以用,textfield的keyup事件可以用,这让我实在有些郁闷,继续研究吧!
sunxing007 2009-07-03
  • 打赏
  • 举报
回复
没有任何关系, 方在哪儿都一样, 你看到textarea的构造函数了没?它是一个完整的可独立的对象。
给你例子:
textarea.js

Ext.onReady(function(){
var p = new Ext.Panel({
title: 'My Panel',
collapsible:true,
renderTo: 'tt',
width:400,
height: 300,
items:[
{
x: 100,
y: 0,
xtype: 'textarea',
name: 'msg',
enableKeyEvents: true,
height:'100%',
width:'100%',
listeners: {
keyup: function(src, evt){
alert(src.getValue());
}
}
}
]
});
});

textarea.html:

<html>
<head>
<title>Textarea</title>
<link rel="stylesheet" type="text/css" href="../../resources/css/ext-all.css"/>

<!-- GC -->
<!-- LIBS -->
<script type="text/javascript" src="../../adapter/ext/ext-base.js"></script>
<!-- ENDLIBS -->

<script type="text/javascript" src="../../ext-all.js"></script>

<script type="text/javascript" src="textarea.js"></script>
<link rel="stylesheet" type="text/css" href="forms.css"/>

<!-- Common Styles for the examples -->
<link rel="stylesheet" type="text/css" href="../shared/examples.css"/>
</head>
<body>
<div id="tt"></div>
</body>
</html>

有问题多看例子,多看extjs.com/docs.
问别人是问不到什么的, 因为懂得人太少了。
我知道得也不多, 今天要不是你问关于listeners的事情,我还不会添加listener,然后我就在examples目录下面搜索listener, 很快例子就出来了。
jofone 2009-07-03
  • 打赏
  • 举报
回复
我用的也是2.2,你的代码我测试了一下,没有问题,可将你的代码放到我的代码里就不行了。你是将textarea放在FormPanel里,而我是将其放在Panel的fieldset里,跟这有关系吗?
sunxing007 2009-07-03
  • 打赏
  • 举报
回复
我用的是2.2测试的
sunxing007 2009-07-03
  • 打赏
  • 举报
回复
我不知道你的为什么不可以,我修改了examples/form/absform.js,你拷贝回去试试看absform.html。

/*
* Ext JS Library 2.2.1
* Copyright(c) 2006-2009, Ext JS, LLC.
* licensing@extjs.com
*
* http://extjs.com/license
*/

Ext.onReady(function() {
var form = new Ext.form.FormPanel({
baseCls: 'x-plain',
layout:'absolute',
url:'save-form.php',
defaultType: 'textfield',

items: [{
x: 0,
y: 5,
xtype:'label',
text: 'Send To:'
},{
x: 60,
y: 0,
name: 'to',
anchor:'100%' // anchor width by percentage
},{
x: 0,
y: 35,
xtype:'label',
text: 'Subject:'
},{
x: 60,
y: 30,
enableKeyEvents: true,
name: 'subject',
anchor: '100%', // anchor width by percentage
listeners: {
keyup: function(src, evt){
alert(src.getValue());
}
}
},{
x:0,
y: 60,
xtype: 'textarea',
name: 'msg',
enableKeyEvents: true,
anchor: '100% 100%', // anchor width and height,
listeners: {
keyup: function(src, evt){
alert(src.getValue());
}
}
}]
});
var window = new Ext.Window({
title: 'Resize Me',
width: 500,
height:300,
minWidth: 300,
minHeight: 200,
layout: 'fit',
plain:true,
bodyStyle:'padding:5px;',
buttonAlign:'center',
items: form,

buttons: [{
text: 'Send'
},{
text: 'Cancel'
}]
});
window.show();
});

87,904

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧