无废话ExtJs 入门教程六[按钮:Button]
继上一节内容,我们在表单里加了个两个按钮“提交”与重置。如下所示代码区的第68行位置, buttons: [btnsubmit, btnreset]。
1.代码如下:
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2 <html xmlns="http://www.w3.org/1999/xhtml">
3 <head>
4 <title></title>
5 <!--ExtJs框架开始-->
6 <script type="text/javascript" src="/Ext/adapter/ext/ext-base.js"></script>
7 <script type="text/javascript" src="/Ext/ext-all.js"></script>
8 <link rel="stylesheet" type="text/css" href="/Ext/resources/css/ext-all.css" />
9 <!--ExtJs框架结束-->
10 <script type="text/javascript">
11 Ext.onReady(function () {
12 //初始化标签中的Ext:Qtip属性。
13 Ext.QuickTips.init();
14 Ext.form.Field.prototype.msgTarget = 'side';
15 //提交按钮处理方法
16 var btnsubmitclick = function () {
17 Ext.MessageBox.alert('提示', '你点了确定按钮!');
18 }
19 //重置按钮"点击时"处理方法
20 var btnresetclick = function () {
21 Ext.MessageBox.alert('提示', '你点了重置按钮!');
22 }
23 //重置按钮"鼠标悬停"处理方法
24 var btnresetmouseover = function () {
25 Ext.MessageBox.alert('提示', '你鼠标悬停在重置按钮之上!');
26 }
27 //提交按钮
28 var btnsubmit = new Ext.Button({
29 text: '提交',
30 handler: btnsubmitclick
31 });
32 //重置按钮
33 var btnreset = new Ext.Button({
34 text: '重置',
35 listeners: {
36 'mouseover': btnresetmouseover,
37 'click': btnresetclick
38 }
39 });
40 //用户名input
41 var txtusername = new Ext.form.TextField({
42 width: 140,
43 allowBlank: false,
44 maxLength: 20,
45 name: 'username',
46 fieldLabel: '用户名称',
47 blankText: '请输入用户名',
48 maxLengthText: '用户名不能超过20个字符'
49 });
50 //密码input
51 var txtpassword = new Ext.form.TextField({
52 width: 140,
53 allowBlank: false,
54 maxLength: 20,
55 inputType: 'password',
56 name: 'password',
57 fieldLabel: '密码',
58 blankText: '请输入密码',
59 maxLengthText: '密码不能超过20个字符'
60 });
61 //表单
62 var form = new Ext.form.FormPanel({
63 frame: true,
64 title: '表单标题',
65 style: 'margin:10px',
66 html: '<div style="padding:10px">这里表单内容</div>',
67 items: [txtusername, txtpassword],
68 buttons: [btnsubmit, btnreset]
69 });
70 //窗体
71 var win = new Ext.Window({
72 title: '窗口',
73 width: 476,
74 height: 374,
75 html: '<div>这里是窗体内容</div>',
76 resizable: true,
77 modal: true,
78 closable: true,
79 maximizable: true,
80 minimizable: true,
81 buttonAlign: 'center',
82 items: form
83 });
84 win.show();
85 });
86 </script>
87 </head>
88 <body>
89 <!--
90 说明:
91 (1)var btnsubmit = new Ext.Button():创建一个新的Button按钮对象。
92 (2)handler: btnsubmitclick:当用户点击的时候[即js中的onclick事件]执行方法btnsubmitclick。
93 (3)listeners: {'mouseover': btnresetmouseover,'click': btnresetclick}:当用户点击的时候[即js中的onclick事件]执行方法btnresetclick,
94 鼠标悬停时执行方法btnresetmouseover。
95 (4)handler与listeners的区别:
96 handler:执行的是首发事件,click是button这个组件的首发事件。这就是handler的运行方式:被某个组件的首要event所触发。
97 handler是一个特殊的listener。
98 listener:是一个事件名 + 处理函数的组合,事件监听,如上例代码所示,我们监听了两个事件"click",与"mouseover"事件,并且会顺序执行。
99 -->
100 </body>
101 </html>
2.效果如下:
3.button组件常用的:属性、方法及事件
一、属性
text:字符串,显示在按钮上的文字。
minWidth: 整型,最小宽度。
二、事件
handler:首发方法处理事件。
listeners:事件监听。
活到老,学到老,练到老...
var form= new Ext.form.FormPanel({
frame: true ,
id: "frmTest" ,
title: "测试表单" ,
style: "margin:10px" ,
items:[textuser,textpass],
buttons:[btnSubmit,btnReset]
});
然后在reset的按钮里面添加事件
?
var btnReset= new Ext.Button({
text: "重置" ,
listeners:{
'click' : function (){
var frmTest=Ext.getDom( "frmTest" );
frmTest.reset();
}
}
});
就会出现错误,下面是出错信息
'click' : function () {
var frmTest = Ext.getDom( "frmTest" );
frmTest.reset();
}
问题(1):没有区分开,getDom与getCmp的区别。
getDom方法-获得DOM节点
getCmp方法-获得Ext组件
这里应该使用var frmTest = Ext.getCmp("frmTest");
'click' : function () {
var frmTest = Ext.getCmp( "frmTest" );
frmTest.getForm().reset();
}