ExtJS入门

<pre name="code" class="html"><!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <!--ExtJs框架开始-->
    <link rel="stylesheet" type="text/css" href="./ext-4.2.1/resources/css/ext-all.css" />
	<script type="text/javascript" src="./ext-4.2.1/bootstrap.js"></script>
    <script type="text/javascript" src="./ext-4.2.1/resources/css/ext-theme-neptune.js"></script>
    <script type="text/javascript" src="./ext-4.2.1/locale/ext-lang-zh_CN.js"></script>
	<style type="text/css">
		.loginicon{
			//background-image: ;
		}
		.x-form-unit
         {
             height: 22px;
             line-height: 22px;
             padding-left: 5px;
             display: inline-block;
             display: inline;
         }
	</style>
    <!--ExtJs框架结束-->
    <script type="text/javascript">
		//----------------------重写文本框开始----------------------//
		Ext.override(Ext.form.TextField, {
             unitText: '',
			 onRender:function(ct, position){
				Ext.form.TextField.superclass.onRender.call(this, ct, position);
				if (this.unitText != '') {
					var tr =document.getElementById(ct.getAttribute("id")).childNodes[position].getElementsByTagName("input")[0].parentNode.parentNode;
					var unit ={
						tag: 'div',html: this.unitText,width:'200px'
					}
					var unitEl = ct.createChild(unit,ct.child(),true);
					unitEl.className +=" x-form-unit";
					var newTd = document.createElement("td");
					newTd.style.width=this.unitText.length*20+"px";
					this.width +=this.unitText.length*20;
					newTd.appendChild(unitEl);
					tr.appendChild(newTd);
				}
			 }
         });
         //----------------------重写文本框结束----------------------//


         Ext.onReady(function () {
			//QuickTips的作用是初始化标签中的Ext:Qtip属性,并为它赋予显示提示的动作。
			Ext.QuickTips.init();
			//TextField的提示方式为:在右边缘,如上图所示,参数枚举值为"qtip","title","under","side",id(元素id),
			//side方式用的较多,右边出现红色感叹号,鼠标上去出现错误提示。
			Ext.form.Field.prototype.msgTarget = 'side';
			//创建一个新的TextField文本框对象。
			var txtusername = new Ext.form.TextField({
				 width: 215,
				 unitText: ' cm左右',
				 labelWidth:60,								//fieldLabel 的长度
				 allowBlank: false,							//是否允许文本框为空。
				 maxLength: 20,								//文本框的最大长度为20个字符,当超过20个字符时仍然可以继续输入,但是Ext会提示警告信息。
				 name: 'username',
				 fieldLabel: '用户名称',
				 emptyText:'请输入用户名',
				 blankText: '请输入用户名',					//当非空校验没有通过时的提示信息。	
				 maxLengthText: '用户名不能超过20个字符'	//当最大长度校验没有通过时的提示信息。
				 //maskRe:									//用于过滤不匹配字符输入的正则表达式
			});
			//----------------------数字字段开始----------------------//
			var numberfield = new Ext.form.NumberField({
				 fieldLabel: '身高',
				 labelWidth:60,
				 width: 180,
				 decimalPrecision: 2,
				 minValue: 0.01,
				 maxValue: 200,
				 unitText: ' cm',
				 allowBlank: false,
				 blankText: '请输入身高',
				 value:100
			});
			//----------------------隐藏域字段开始----------------------//
			var hiddenfield = new Ext.form.Hidden({
				 name: 'userid',
				 value: '1'
			});
			//----------------------隐藏域字段结束----------------------//
			//----------------------日期字段开始----------------------//
			var datefield = new Ext.form.DateField({
				 fieldLabel: '出生日期',
				 labelWidth:60,
				 format: 'Y-m-d',
				 editable: false,
				 allowBlank: false,
				 blankText: '请选择日期'
			});
			//----------------------日期字段结束----------------------//
			//----------------------单选组开始----------------------//
			var radiogroup = new Ext.form.RadioGroup({
				fieldLabel: '性别',
				labelWidth:60,
				width: 150,
				items: [{
					 name: 'sex',
					 inputValue: '0',
					 boxLabel: '男',
					 checked: true
				}, {
					 name: 'sex',
					 inputValue: '1',
					 boxLabel: '女'
				}]
			});
			//重置按钮"鼠标悬停"处理方法
			var btnresetmouseover = function () {
				Ext.MessageBox.alert('提示', '你鼠标悬停在重置按钮之上!');
			}
			//重置按钮"点击时"处理方法
			var btnresetclick = function () {
				form.getForm().reset();								//重置表单。
				Ext.MessageBox.alert('提示', '你点了重置按钮!');
			}
			//重置按钮
			var btnreset = new Ext.Button({
				  text: '重置',
				  //事件监听。两个事件"click",与"mouseover"事件,并且会顺序执行。
				  listeners: {
					  'mouseover': btnresetmouseover,
					  'click': btnresetclick
				  }
			});
			var states = Ext.create('Ext.data.Store', {
				fields: ['abbr', 'name'],
				data : [
					{"abbr":"AL", "name":"Alabama"},
					{"abbr":"AK", "name":"Alaska"},
					{"abbr":"AZ", "name":"Arizona"}
					//...
				]
			});
			var form = new Ext.form.FormPanel({
				 frame: true,
				 title: '表单标题',
				 style: 'margin:10px',
				 url:'xxxxxxxxx',				//表单提交地址。
				 buttonAlign: 'center',
				 bodyStyle: 'padding:6px 0px 0px 15px',
				 html: '<div style="padding:10px">登陆界面</div>',
				 items: [txtusername,hiddenfield,datefield,radiogroup,
					numberfield,
					{xtype:'textfield',id:'email',name:'email',fieldLabel:'邮箱',labelWidth:60,emptyText:'请输入邮箱',vtype: 'email'},
					{xtype: 'combobox',fieldLabel: 'State',name: 'state',labelWidth:60,
						store: Ext.create('Ext.data.Store', {
							fields: ['abbr', 'name'],
							data : [
								{"abbr":"AL", "name":"Alabama"},
								{"abbr":"AK", "name":"Alaska"},
								{"abbr":"AZ", "name":"Arizona"}
							]
						}),
						valueField: 'abbr',
						displayField: 'name',
						typeAhead: true,
						queryMode: 'local',
						renderTo: Ext.getBody(),
						emptyText: 'Select a state...'
					},
					//第二种文本输入框写法
					{xtype:'textfield',inputType:'password',id:'password',name:'password',fieldLabel:'密码',labelWidth:60,emptyText:'请输入密码'},
					{xtype:'textfield',id:'checkcode',name:'checkcode',fieldLabel:'验证码',labelWidth:60,emptyText:'请输入验证码'}
					
					
				 ],
				 buttons: [{type:'button',text:"提交",
					//handler是一个特殊的listener。执行的是首发事件,比如 [button]的首发方法事件是click事件
					handler:function(){
						if (form.getForm().isValid()) {				//isValid():校验表单的验证项是否全部通过
							Ext.Msg.alert("提示", "登陆成功!");
						}
					}
				 }, btnreset]
			});

			//创建一个新的Window窗体对象。
			var win = new Ext.Window({
				 title: '窗口',				//窗体的标题。
				 width: 476,
				 height: 374, 
				 shadow: true,
				 iconCls: 'loginicon',		//给窗体加上小图标
				 //bodyStyle:"padding:10px"	//与边框的间距
				 resizable: true,			//是否可以调整窗体的大小
				 modal: true,				//是否为模态窗体[什么是模态窗体?当你打开这个窗体以后,如果不能对其他的窗体进行操作,那么这个窗体就是模态窗体,否则为非模态窗体]。
				 closable: true,			//是否可以关闭,也可以理解为是否显示关闭按钮。
				 maximizable: true,			//true表示显示最大化按钮,默认值为false。
				 minimizable: true,			//true表示显示窗体时将窗体最大化,默认值为false。
				 items: form
				 //html:'<div>窗体内部显示的html内容。</div>',
				 //closeAction:"close"		//"close"释放窗体所占内存,"hide"隐藏窗体,建议使用"hide"。
			});
			win.show();		//窗体展示。
			//win.hide();	//隐藏窗体。
			//win.close();	//关闭窗体。
			var checkcode = Ext.getDom('checkcode').parentNode;	//根据ID获取Dom
			Ext.get(checkcode).createChild(	//根据Dom获取父节点并创建子节点
				{tag: 'img',src: './image/tb-sprite.gif',align: 'absbottom',style: 'padding-left:23px;cursor:pointer;'}
			);
			
		});
     </script>
 </head>
<body>
<!-- 看啥看 -->
<div id = "mydiv"></div>
</body>
</html>



                
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值