Extjs中textarea不支持keyup事件? 最近做一个项目,用到Ext.form.textarea, 在监听事件中添加了keyup事件,并将enableKeyEvents属性设为true,但并不执行该事件,不知道为什么? Ext.form.textfield则没有任何问题。郁闷,哪位高手能否指点一二!谢谢! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我不知道你的为什么不可以,我修改了examples/form/absform.js,你拷贝回去试试看absform.html。/* * Ext JS Library 2.2.1 * Copyright(c) 2006-2009, Ext JS, LLC. * [email protected] * * 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();}); 我用的也是2.2,你的代码我测试了一下,没有问题,可将你的代码放到我的代码里就不行了。你是将textarea放在FormPanel里,而我是将其放在Panel的fieldset里,跟这有关系吗? 没有任何关系, 方在哪儿都一样, 你看到textarea的构造函数了没?它是一个完整的可独立的对象。给你例子:textarea.jsExt.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, 很快例子就出来了。 目前我的问题还没有解决,还是谢谢你!你给的代码我测试过了,是没有问题,但把握的代码放进去就不行,change事件可以用,textfield的keyup事件可以用,这让我实在有些郁闷,继续研究吧! 加上这些试试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); }}); enableKeyEvents: true要把enableKeyEvents属性设置为true 我今天也遇到同样的困难,一下是我的代码,也不出现提示: var mn = new Ext.form.TextField({ name : 'searchusername', id : "searchusername", width : 210, scope : this, enableKeyEvents : true, listeners : { 'keyup' : function(o, evt) { alert(3); } } }); ExtJS浏览器兼容性问题。 为什么我获取到的值总是undefined呢? 用eval()解json出错:缺少 ']' 如何构造函数 请问,这种形式一般在什么地方用var add_msg=function(){}? 为什么返回值是undefined 请问如何得到一个层的Z轴坐标 [求教]下拉框事件触发问题!(急!急!!急!!!) 我在ie5中history.back()行的,但是在ie6中就不行了,不知道为什么? jquery多个选择器,如何写 【有图】javascript里面的一个api在vs08里不能正常运行 【紧急】:IE8下iframe子窗口通过top访问顶层窗口的时候报"没有权限"
* Ext JS Library 2.2.1
* Copyright(c) 2006-2009, Ext JS, LLC.
* [email protected]
*
* 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();
});
给你例子:
textarea.jsExt.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, 很快例子就出来了。
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);
}
});
var mn = new Ext.form.TextField({
name : 'searchusername',
id : "searchusername",
width : 210,
scope : this,
enableKeyEvents : true,
listeners : {
'keyup' : function(o, evt) {
alert(3);
}
}
});