`
raymond.chen
  • 浏览: 1437206 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

表单组件_v2.2(三)

阅读更多

本范例展示如何使用表单的各种组件。

下拉框组件展示了5种使用范例:普通下拉框、绑定HTML组件的下拉框、树形下拉框、分页下拉框、多选下拉框等。



  

 

Ext.onReady(function(){
	Ext.BLANK_IMAGE_URL = "/widgets/ext-2.2/resources/images/default/s.gif"; 
	Ext.QuickTips.init();
	Ext.form.Field.prototype.msgTarget = "qtip";

	//component
	var hiddenField = new Ext.form.Hidden({
		name: "hiddenField",
		value: "1"
	});

	var usernameField = new Ext.form.TextField({
		name: "username",
		fieldLabel: "用户名",
		allowBlank: true,
		blankText: "请输入用户名!"
	});

	var pwdField = new Ext.form.TextField({
		name: "password",
		fieldLabel: "密码",
		allowBlank: true,
		blankText: "请输入密码!",
		inputType: "password"
	});

	var ageField = new Ext.form.NumberField({
		name: "age",
		allowBlank: true,
		blankText: "请输入年龄!",
		fieldLabel: "年龄",
		allowDecimals: false,
		allowNegative: false,
		minValue: 18,
		minText: "年龄不能少于18",
		maxValue: 100,
		maxText: "年龄不能大于100"
	});

	var love1 = new Ext.form.Checkbox({
		name: "love1",
		boxLabel: "打球",
		inputValue: "1"
	});

	var love2 = new Ext.form.Checkbox({
		name: "love2",
		boxLabel: "游泳",
		inputValue: "2"
	});

	var love3 = new Ext.form.Checkbox({
		name: "love3",
		boxLabel: "登山",
		inputValue: "3"
	});

	var loveGroup = new Ext.form.CheckboxGroup({
		name: "love",
		columns: [80, 80, 1.0],
		fieldLabel: "爱好",
		items: [love1, love2, love3]
	});

	var sex1 = new Ext.form.Radio({
		name: "sex1",
		boxLabel: "男",
		inputValue: "1"
	});

	var sex2 = new Ext.form.Radio({
		name: "sex1",
		boxLabel: "女",
		inputValue: "0"
	});

	var sexGroup = new Ext.form.RadioGroup({
		name: "sex",
		columns: [80, 1.0],
		fieldLabel: "性别",
		items: [sex1, sex2]
	});

	//本地数据源的组合框
	var store = new Ext.data.SimpleStore({
		fields: ["code", "name"],
		data: [
			["1", "北京"],
			["5", "上海"],
			["4",  "广东"]
		]
	});
	var cmbProvince = new Ext.form.ComboBox({
		id: "cmbProvince",
		hiddenName: "province.id",
		fieldLabel: "省份",
		resizable: true,
		editable: false,
		width: 100,
		emptyText: "请选择...",
		store: store,
		valueField: "code",
		displayField: "name",
		triggerAction: "all",
		mode: "local"
	});

	//远程数据源的组合框
	var store2 = new Ext.data.SimpleStore({
		fields: ["name"],
		proxy: new Ext.data.HttpProxy({
			url: "../testForm!loadData.action"
		})
	});

	var cmbManager = new Ext.form.ComboBox({
		hiddenName: "manager",
		fieldLabel: "经理",
		editable: false,
		triggerAction: "all",
		mode: "local",
		maxHeight: 200,
		store: new Ext.data.SimpleStore({fields:[],data:[[]]}),
		onSelect: Ext.emptyFn,
		tpl: "<tpl for='.'><div id='tree'></div></tpl>"
	});

	var root = new Ext.tree.TreeNode({
		nodeId: 1,
		text: "根节点",
		expanded: true
	});
	root.appendChild(new Ext.tree.TreeNode({nodeId:2, text:"节点A", leaf:true}));
	root.appendChild(new Ext.tree.TreeNode({nodeId:3, text:"节点B", leaf:true}));

	var tree = new Ext.tree.TreePanel({
		root: root,
		border: false,
		autoHeight: true,
		autoScroll: true
	});

	tree.on("click", function(node){   
		if(!node.isLeaf()) return; //只能选择叶节点
		//下拉框的隐藏值
		if(cmbManager.hiddenField){
			cmbManager.hiddenField.value = node.attributes.nodeId;
		}
		cmbManager.setRawValue(node.text); //下拉框的显示值
		cmbManager.collapse(); //折叠下拉框
	});

	cmbManager.on("expand", function(){  
		tree.render("tree");   
	}); 

	//分页远程数据源的组合框
	var store3 = new Ext.data.JsonStore({
		url: "../testForm!loadData3.action",
		totalProperty: "totalNum",
		root: "books",
		fields: ["id", "name"]
	});
	var cmbBook = new Ext.form.ComboBox({
		hiddenName: "books",
		fieldLabel: "书籍",
		store: store3,
		valueField: "name",
		displayField: "name",
		triggerAction: "all",
		mode: "remote",
		queryParam: "books",
		loadingText: "正在装载数据...",
		width: 180,
		minChars: 1,
		editable: false,
		listWidth: 250,
		pageSize: 3
	});

	//HTML标准组件
	var cmbPass = new Ext.form.ComboBox({
		hiddenName: "status",
		fieldLabel: "是否有效",
		triggerAction: "all",
		editable: false,
		width: 100,
		transform: "isPass",
		lazyRender: true
	});

	var cmbTimes = new Ext.form.TimeField({
		hiddenName: "time",
		fieldLabel: "时间",
		minValue: "09:00",
		minText: "所选时间应大于{0}",
		maxValue: "18:00",
		maxText: "所选时间应小于{0}",
		format: "H时i分",
		increment: 30,
		invalidText: "时间格式无效!",
		maxHeight: 200,
		width: 100,
		value: "09时00分",
		editable: false
	});

	var cmbMonths = new Ext.ux.MultiSelectCombo({
		hiddenName: "months",
		fieldLabel: "月份",
		maxHeight: 200,
		editable: false,
		store: [["201010","201010"], ["201009","201009"], ["201008","201008"], ["201007","201007"], ["201006","201006"]],
		mode: "local",
		width: 180,
		maxItemsCount: 3,
		maxItemsCountText: "最多只能选择三个选项!"
	});

	var cmbBirths =  new Ext.form.DateField({
		name: "births",
		fieldLabel: "出生日期",
		disabledDays: [0,6],
		disabledDaysText: "禁止选择周末!",
		width: 100,
		readOnly: true,
		format: "Y-m-d",
		invalidText: "不是有效的日期值!"
	});

	var fieldSet1 = new Ext.form.FieldSet({
		title: "下拉框",
		checkboxName: "fieldSet1",
		checkboxToggle: true,
		autoHeight: true,
		layout: "table",
		layoutConfig: {
			columns: 3
		},
		defaults: {
			style:"margin-left:8px; margin-top:3px; margin-right:8px; margin-bottom:3px; valign:top",
			layout:"form",
			labelAlign: "right"
		},
		items: [
			{rowspan:1, colspan:1, items:[cmbProvince]},
			{rowspan:1, colspan:1, items:[cmbManager]},
			{rowspan:1, colspan:1, items:[cmbBook]},
			{rowspan:1, colspan:1, items:[cmbPass]},
			{rowspan:1, colspan:1, items:[cmbTimes]},
			{rowspan:1, colspan:1, items:[cmbMonths]},
			{rowspan:1, colspan:1, items:[cmbBirths]}]
	});

	var remarksField = new Ext.form.TextArea({
		name: "remarks",
		fieldLabel: "备注",
		width: 400,
		height: 80
	});

	var form = new Ext.form.FormPanel({
		id: "frmAddUser",
		title: "新增用户",
		autoWidth: true,
		autoHeight: true,
		frame: true,
		renderTo: Ext.getBody(),
		labelWidth: 70,
		tbar: toolbar,
		items: [hiddenField, usernameField, pwdField, ageField, loveGroup, sexGroup, 
			fieldSet1, remarksField],
		url: "../testForm!ajaxSubmitForm.action"
	});
});

 

  • 大小: 15.1 KB
分享到:
评论

相关推荐

    Joomla免费评论组件jcomments_v2.2.0.2

    Joomla免费评论组件jcomments_v2.2.0.2是一款专为Joomla内容管理系统设计的第三方评论系统。它提供了一个交互性强、功能丰富的平台,让用户可以在网站内容下方发表、回复评论,提升用户参与度和社区活跃度。该组件...

    TGIFImage.v.2.2.D7.rar_GIFImage delphi_GifImage 2.2_TGIFImage de

    1. **导入组件**:在Delphi的组件面板上,将TGIFImage组件拖放到表单上。 2. **加载GIF**:通过`TGIFImage.LoadFromFile`或`LoadFromStream`方法加载GIF文件。 3. **设置属性**:如调整动画速度`AnimateSpeed`,设置...

    X-admin-v2.2前端框架

    - **用户管理**:可以使用X-admin的表格组件展示用户列表,通过layui的表单组件实现用户信息的编辑和新增。 - **角色分配**:利用多选框和下拉框组件,实现角色权限的分配,支持批量操作。 - **日志监控**:集成日志...

    X-admin-v2.2.rar

    - 全面性:X-admin-v2.2包含了layui的全部组件,无论是基本元素还是复杂功能,如表格排序、筛选、分页,或是表单验证,都能轻松应对。 - 一致性:页面设计遵循统一的UI风格,确保用户在操作过程中体验连贯,降低...

    inspinia_admin-v2.2

    综上所述,"inspinia_admin-v2.2"是一个功能强大的后台管理模板,它提供的资源和组件能够极大地提高开发效率,减少重复工作,同时保证了最终产品的质量和用户体验。如果你正在进行后台管理系统开发,这个模板会是一...

    无惧上传类 V2.2脚本和使用手册

    "无惧上传类 V2.2脚本和使用手册"是一个专为Web开发设计的文件上传组件,由作者梁无惧编写。这个组件的核心目标是简化网页上的文件上传功能,提供安全、高效的解决方案,帮助开发者在网站上实现用户友好的文件上传...

    TVideoGrabber_Video_SDK_v10.6.2.2_D2010_Win_32_BPL_DCUs_Only_Downloadly.ir.rar

    总结,TVideoGrabber Video SDK v10.6.2.2为Delphi开发者提供了强大的视频处理能力,结合D2010的特性和BPL、DCU组件,能帮助开发者高效地开发出高质量的音视频应用。通过深入理解和熟练运用这个SDK,开发者可以创造...

    x-admin v2.2模版 html5模版 网页模版

    模版采用了扁平化设计风格,色彩搭配和谐,图标精美,布局合理,提供了丰富的组件和页面示例,如登录、注册、表格、图表、表单等,满足了后台管理系统的常见需求。同时,模版支持响应式布局,能自动适应不同屏幕尺寸...

    AdminLTE-admin 轻量级权限管理框架 v2.2.zip

    6. **模板设计**:预设了多种后台页面模板,包括仪表盘、表单组件、数据列表、图表展示等,让开发者可以快速搭建起一个具有专业外观的管理界面。 7. **文档支持**:"说明.htm"文件很可能是框架的使用指南或API文档...

    渴切-开源中文css框架v2.2

    渴切,一个以中文命名的开源CSS框架,其最新版本为v2.2,是对原有的ThinkCSS框架的进一步发展和优化。这个框架旨在为开发者提供更便捷、更符合中文使用习惯的前端开发工具,帮助他们快速构建响应式、美观且易用的...

    TMS IntraWeb Component Pack Pro v2.2.0.1

    "TMS IntraWeb Component Pack Pro v2.2.0.1"这个文件可能是安装程序或者更新包,用于安装或升级该组件包。 总之,TMS IntraWeb Component Pack Pro v2.2.0.1是Delphi开发者在Web领域进行创新和提高生产率的理想...

    SWFUpload v2.2.0.1 源码示例经典 详细注释

    在这个版本v2.2.0.1中,源码包含了详细的注释,这对于开发者理解和自定义功能非常有帮助。 首先,SWFUpload的核心功能是通过Flash插件与JavaScript交互,实现了在后台无刷新地上传文件。这个过程涉及的主要技术包括...

    Angulr v2.2 响应式 后台模版 Bootstrap Template

    **Angular v2.2 响应式后台模板 Bootstrap Template** AngularJS 2.2 是一个重大的升级,它带来了许多改进和新特性,使得开发者能够更高效地构建高性能的单页应用程序(SPA)。这个模板是基于Angular 2.2版本构建的...

    MKVExtract GUI v2.2.2.5 (MKV分解,Delphi 源程序)

    MKVExtract GUI v2.2.2.5 是一个基于Delphi开发的工具,用于分解MKV视频文件,提取其中的视频、音频和字幕轨道。这个程序的源代码提供了深入理解MKV文件结构和如何操作这些文件的宝贵资源。 首先,让我们了解一下...

    无惧无组件上传类,ASP无组件上传

    "无惧无组件上传类,ASP无组件上传"就是针对这种情况提出的一种解决方案,它允许开发者在不依赖任何第三方组件的情况下,实现文件上传功能。下面将详细介绍这个主题及其相关知识点。 1. ASP基础: ASP是微软开发的一...

    ASP源码—megabbs v2.2.zip

    在解压"ASP源码—megabbs v2.2.zip"后,文件132688976280185784可能是这个论坛系统的核心组件或者数据库配置文件,可能包含如下内容: 1. ASP源文件:这些文件包含了论坛的逻辑代码,如处理用户请求、验证用户身份、...

    asp无惧上传类UpFileClassV2.2.rar

    "无惧上传类UpFileClassV2.2"是一款针对ASP环境设计的文件上传组件,它简化了ASP程序中的文件上传操作,提供了安全、方便的接口。 UpFileClass是这个组件的核心类,它包含了处理文件上传所需的各种功能。例如,它...

    X-admin经典前端后台管理模板 v2.2.zip

    《X-admin经典前端后台管理模板 v2.2》是一款广泛应用于软件工具开发、源码学习、毕业设计论文以及计算机案例研究的重要资源。该模板基于HTML5、CSS3和JavaScript技术,为开发者提供了一套完整的后台管理系统界面...

    ASP源码—非零坊邮件投稿源码 v2.2.zip

    【ASP源码—非零坊邮件投稿源码 v2.2.zip】是一个包含ASP语言编写的邮件投稿系统的源代码包。这个系统主要用于网站接收用户的投稿,通过电子邮件的方式进行提交。 ASP(Active Server Pages)是微软开发的一种服务器...

Global site tag (gtag.js) - Google Analytics