js文件
Ext.onReady(function() {
// 对于提交中出现的乱码,在Ext中可以修改Request Header中Content-Type的设置
Ext.lib.Ajax.defaultPostHeader += ";charset=utf-8";
Ext.QuickTips.init();
Ext.apply(Ext.QuickTips.getQuickTip(), {
dismissDelay : 0
});
Ext.form.Field.prototype.msgTarget = 'side';
var data = [['湖北', 'hubei'], ['江西', 'jiangxi'], ['江苏', 'jiangsu'],
['安徽', 'anhui'], ['北京', 'beijing'], ['上海', 'shanghai'],
['天津', 'tianjin']];
var store = new Ext.data.SimpleStore({
fields : ['chinese', 'english'],
data : data
});
var combo1 = new Ext.form.ComboBox({
id : 'province',
name : 'province',
hiddenName : 'provinceHidden',
displayField : 'chinese',
valueField : 'english',
mode : 'local',
minChars : '1',
queryDelay : 300,// 延时300毫秒
store : store,
triggerAction : "all",
pageSize : 3,
width : 200,
labelSeparator : ':',
emptyText : '请选择',
fieldLabel : '省',
readOnly : false,
listeners : {
select : function(comb, record, index) {
alert(comb.getValue());
}
}
});
// 创建Form面板
var form = new Ext.form.FormPanel({
id : 'form',
name : 'form',
// applyTo : 'div1',
frame : true,
bodyStyle : 'padding:1px 0 0 0;',
buttonAlign : 'center',
labelAlign : 'left',
labelWidth : 60,
width : 600,
defaultType : 'textfield',
items : [{
id : 'username',
name : 'username',
allowBlank : false,
msgTarget : 'qtip',
fieldLabel : '姓名',
itemCls : 'sex-male', // 向左边浮动,处理控件横排
clearCls : 'allow-float'// 允许两边浮动
}, {
id : 'password',
name : 'password',
fieldLabel : '密码',
inputType : 'password'
}, {
xtype : 'radio',
fieldLabel : '性别',
boxLabel : '男',
name : 'sex',
id : 'male',
itemCls : 'sex-male', // 向左边浮动,处理控件横排
clearCls : 'allow-float', // 允许两边浮动,在实际生成的HTML结构中有专门的DIV阻断浮动
checked : true
}, {
xtype : 'radio',
boxLabel : '女',
name : 'sex',
id : 'female',
width : 60,
itemCls : 'sex-female', // 向左浮动,处理控件横排
clearCls : 'allow-float', // 允许两边浮动
hideLabel : true
// 不显示前面"性别"的标签
}, {
xtype : 'checkbox',
boxLabel : '是否毕业',
name : 'graduate',
id : 'graduate',
itemCls : 'sex-female', // 向左浮动,处理控件横排
clearCls : 'allow-float', // 允许两边浮动
hideLabel : true
// 不显示前面"性别"的标签
}, {
xtype : 'numberfield',
fieldLabel : '年龄',
id : 'i_age',
name : 'n_age',
allowNegative : false,
allowDecimals : false,
itemCls : 'age-field', // 向左浮动,处理控件横排
clearCls : 'allow-float', // 允许两边浮动
width : 90
}, {
xtype : 'textfield',
fieldLabel : '住址',
name : 'n_address',
allowBlank : false,
emptyText : '请输入',
id : 'i_address',
maxLength : 20,
itemCls : 'stop-float', // 不允许浮动,结束控件横排
width : 300
}, {
xtype : 'datefield',
fieldLabel : '出生日期',
name : 'n_birthday',
id : 'i_birthday',
disabledDays : [0],// 禁止选择星期日
itemCls : 'sex-male', // 不允许浮动,结束控件横排
clearCls : 'allow-float', // 允许两边浮动
width : 120
}, {
xtype : 'timefield',
fieldLabel : ' ',
name : 'n_time',
id : 'i_time',
itemCls : 'sex-male', // 不允许浮动,结束控件横排
clearCls : 'allow-float', // 允许两边浮动
width : 120,
hideLabel : true
}, {
xtype : "trigger",
fieldLabel : "触发",
anchor : "50%",
onTriggerClick : function(e) {// 在这里写你要实现的事件,很容易扩展
alert("www.langsin.com");
}
}, {
xtype : 'textarea',
fieldLabel : '备注',
name : 'n_area',
id : 'i_area',
// itemCls:'sex-male', //不允许浮动,结束控件横排
// clearCls:'allow-float', //允许两边浮动
width : 300
}, {
xtype : 'checkboxgroup',
fieldLabel : '外协录入',
columns : 4,
items : [{
boxLabel : '外协申请批件',
name : 'lrb1',
inputValue : '100'
}, {
boxLabel : '合同洽谈',
name : 'lrb2',
inputValue : '101'
}, {
boxLabel : '市场准入材料',
name : 'lrb3',
inputValue : '102'
}, {
boxLabel : '网上审批',
name : 'lrb4',
inputValue : '103'
}, {
boxLabel : '合同信息',
name : 'lrb5',
inputValue : '104'
}, {
boxLabel : '付款情况',
name : 'lrb6',
inputValue : '105'
}, {
boxLabel : '检查验收',
name : 'lrb7',
inputValue : '106'
}]
}, {
xtype : 'combo',
fieldLabel : '网站',
name : 'n_url',
triggerAction : "all",// 请设置为"all",否则默认为"query"的情况下,你选择某个值后,再此下拉时,只出现匹配选项,如果设为"all"的话,每次下拉均显示全部选项
listeners : {
select : function(comb, record, index) {
alert(comb.getValue());
}
},
readOnly : true,
transform : "select",// html中的id
lazyRender : true,
width : 120
}, {// 显示图片
id : 'browseImage',
fieldLabel : '照片',
autoCreate : {
tag : 'input',
type : 'image',
src : 'demo/oicq.gif',
// src : Ext.BLANK_IMAGE_URL,
style : 'filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(sizingMethod=scale);',
name : 'imageBrowse'
}
}, {
inputType : 'file',
id : 'imageUpload',
fieldLabel : '文件',
width : 300
}, {
id : 'url',
name : 'url',
allowBlank : false,
width : 300,
fieldLabel : '网址',
value : 'http://www.163.com',
vtype : 'url'// url,email,alpha,alphanum
}, combo1, {
xtype : 'htmleditor',
id : 'editor',
name : 'editor',
fieldLabel : '编辑器',
// fontFamilies:['宋体','隶书','楷体'],
width : 250,
anchor : "99%"
}
],
buttons : [{
text : '确定',
handler : onOK
// 实际应用一般是处理form.getForm.submit()事件
}, {
text : '重置',
handler : function() {
form.form.getEl().dom.reset();// 使用Dom的刷新方法
form.getForm().reset();// Ext reset()
// 方法刷新时,无法刷新inputType:file的值的解决方法
}
}],
keys : [{ // 处理键盘回车事件
key : Ext.EventObject.ENTER,
fn : onOK,
scope : this
}]
});
var menus = new Ext.menu.Menu({
shadow : 'frame',// 设置菜单四打边有阴影
items : [{
text : '是否启用',
checked : true,
handler : onSave
}, {
text : '另存为',
handler : onSave,
menu : new Ext.menu.Menu({
items : [{
text : '文件另存为',
group : 'theme',
checked : false,
handler : onSave
}, {
text : '图片另存为',
group : 'theme',
checked : false,
handler : onSave
}]
})
}]
});
function onSave(item) {
alert(item.text);
}
// 工具栏
var toolbar = new Ext.Toolbar({
applyTo : 'tool',
width : 500
});
toolbar.addButton([{
text : '新建'
}, {
text : '打开'
}, {
text : '保存'
}]);
toolbar.addSeparator();
toolbar.addField(new Ext.form.TextField({
width : 30
}));
toolbar.addFill();
toolbar.addText('静态文本');
toolbar.add('-', '->', {
text : '文件',
menu : menus
});
// 确定按钮事件,这里只是简单获取各控件值,实际应用一般和后台脚本结合
function onOK() {
var strMsg;
strMsg = '姓名:' + form.getComponent('username').getValue() + ',性别:';
if (form.getComponent('male').checked)
strMsg += '男';
if (form.getComponent('female').checked)
strMsg += '女';
strMsg += ',年龄:' + form.getComponent('i_age').getValue();
strMsg += ',住址:' + form.getComponent('i_address').getValue();
// 通过循环遍历checkboxgroup获得值
// alert(strMsg);
var checkboxgroup = form.items.itemAt(11);
// alert(checkboxgroup.getXType());//类型
var vItems = checkboxgroup.items;
var vCount = vItems.getCount();
for (var i = 0; i < vCount; i++) {
// alert(vItems.itemAt(i).getValue());//值
}
form.form.submit({
waitMsg : '登陆中,请稍等...',
method : 'POST',
clientValidation : true,
params : {
p : '参数'
}, // 传递的参数
url : "demo/MyJsp.jsp",
// 定义要跳转的url,格式被请求的页面格式为{ 'success': true,'msg': '成功'}
success : function(form, action) {
// Ext.Msg.alert('信息',"提示:"+"response.responseText");//加粗体是得到后台的具体返回信息。
Ext.Msg.alert('提示', "数据修改成功");// 成功提示信息
},
failure : function(form, action) {
Ext.Msg.alert('提示', action.failureType);
}
});
}
// 创建主窗口
var win = new Ext.Window({
title : 'Ext中的FormPanel面板及Form控件',
width : window.document.body.clientWidth / 2,
closable : true,
y : 10,
collapsible : true,
// draggable: false,
resizable : false,
modal : false,
closeAction : 'hide',
tbar : [{
text : '顶部按钮'
}],
border : true,
manager : wgroup,
items : [form],
buttons : []
});
win.show();
var wgroup = Ext.WindowGroup();
// 隐藏全部window
// wgroup.hideAll();
});
/**
* 在Ext2.2的Ext.form.FormPanel中如果有RadioGroup或者CheckboxGroup,那么
* FormPanel.form.setValues方法对这2个东东内部的radio和checkbox无法动态赋值,需要对
* Ext.form.BasicForm的findField方法进行修正,代码如下:
*/
Ext.override(Ext.form.BasicForm, {
findField : function(id) {
var field = this.items.get(id);
if (!field) {
this.items.each(function(f) {
if (f.isXType('radiogroup') || f.isXType('checkboxgroup')) {
f.items.each(function(c) {
if (c.isFormField
&& (c.dataIndex == id || c.id == id || c
.getName() == id)) {
field = c;
return false;
}
});
}
if (f.isFormField
&& (f.dataIndex == id || f.id == id || f.getName() == id)) {
field = f;
return false;
}
});
}
return field || null;
}
});
html文件
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Form控件测试</title>
<style type="text/css" media="all">
.allow-float {clear:none!important;} /* 允许该元素浮动 */
.stop-float {clear:both!important;} /* 阻止该元素浮动 */
.sex-male {float:left;}
.sex-female {float:left;padding:0 0 0 20px;}
.age-field {float:left;padding:0 0 0 50px;}
</style>
<link rel="stylesheet" type="text/css"
href="extjs/resources/css/ext-all.css" />
<script type="text/javascript" src="extjs/adapter/ext/ext-base.js"></script>
<script type="text/javascript" src="extjs/ext-all.js"></script>
<script type="text/javascript" src="extjs/locale/ext-lang-zh_CN.js"></script>
<script type="text/javascript" src="form.js"></script>
</head>
<body>
<div id="tool"></div>
<select id="select">
<option value="1">
浪曦
</option>
<option value="2">
博客园
</option>
<option value="3">
百度
</option>
<option value="4">
新浪
</option>
</select>
</body>
</html>
分享到:
相关推荐
Ext.NET控件是一种将流行的JavaScript库Ext JS与微软的.NET框架相结合的技术,旨在为开发者提供在ASP.NET环境中创建丰富交互式Web应用的能力。通过将Ext JS的功能集成到.NET控件中,开发人员可以利用.NET的强大后端...
3. 将控件附加到DOM:将时间控件添加到页面的某个元素中,如一个容器或者表单字段。 4. 监听事件:绑定`select`事件,当用户选择时间后执行相应的回调函数。 例如,以下是一个简单的EXT时间控件使用示例: ```html...
时间控件通常会与表单结合使用,通过事件监听和验证机制确保用户输入的时间符合业务规则。 实现这样一个时间控件,开发者可能需要利用ExtJS的以下核心概念和技术: 1. **组件(Component)**:ExtJS中的所有可视化...
主要用例子说明extjs4的form表单的运用,其中有表单属性说明,表单控件运用说明如: title:'表单', //表单标题 bodyStyle:'padding:5 5 5 5', //表单边距 height:120, //表单高度 width:200, //表单宽度 ...
开发者可以通过引入`monthPick.js`,简单配置即可在表单中添加只选择年月的DateField控件。 总的来说,"Ext DateField控件 - 只选择年月"这一主题涉及到Web前端开发中的组件定制、日期选择控件的优化以及JavaScript...
EXT表单验证是EXT JS框架中的一个重要特性,用于在用户输入数据时确保数据的正确性和完整性。EXT JS是一个强大的JavaScript库,专为构建富客户端Web应用程序而设计。它提供了丰富的组件库,包括表格、表单、菜单等,...
Ext.NET提供了广泛的AJAX控件,如网格、表单、树、图表等,它们能在不刷新整个页面的情况下与服务器交互,实现快速响应和高效的数据操作。 3. **丰富的界面效果**: ExtJS库以其精美、专业的界面设计而闻名,Ext...
根据提供的文件信息,我们可以深入探讨Ext控件的相关知识点。标题提到的是“Ext控件大全”,并且描述中指出这些资料非常适合IT人士尤其是新手学习使用。接下来,我们将基于此内容详细解析Ext控件的基础知识、应用...
这个压缩包文件提供了EXT3.0中的几乎全部控件的演示代码,覆盖了表格、表单、分页工具栏以及图标等多个重要组件的使用方法。下面将详细介绍这些知识点。 1. 表格(Grid):EXT3.0的表格控件是其核心功能之一,能够...
EXT表单,是一种基于JavaScript和Ajax技术的富客户端(Rich Client)表单处理技术,它源自EXT JS库,专门用于构建交互性强、用户体验优秀的Web应用程序。EXT JS是一个强大的JavaScript库,提供了一系列组件化的UI...
EXT提供了丰富的UI组件,包括表格、面板、窗口、表单等,而日期时间控件则是表单组件中的一个重要部分。 "EXT日期时间控件"是一个专门用于显示和编辑日期及时间的控件,它可以精确到时、分、秒,满足了对时间精确度...
"Ext自定义控件库"正是这样一个资源集合,包含了开发者封装的一些特殊功能或样式调整的Ext控件,适用于那些标准组件无法满足需求的场景。 1. **GridPanel.xdc**:GridPanel是ExtJS中的核心组件之一,用于展示表格...
EXT表单设计器是一款基于EXT库的强大工具,专用于快速、高效地构建Web应用程序中的表单。EXT是一个流行的JavaScript框架,由Sencha公司开发,用于构建富客户端应用。EXT表单设计器充分利用EXT库的功能,提供了可视化...
在实际应用中,EXT日期时间控件2通常与其他EXT组件如表格、表单等结合使用,构建复杂的用户界面。例如,在一个日程管理应用中,用户可以通过这个控件来设定事件的开始和结束时间。开发者可以通过配置项来定制控件的...
EXT时间控件可以轻松与其他EXT组件(如GridPanel、FormPanel等)集成,用于数据表单的输入或展示。同时,EXT支持Ajax和服务器端的数据交互,因此DateTimeField也能方便地配合服务器端进行数据验证和存储。 6. **...
3. 将控件添加到表单或面板中,以便用户进行交互。 4. 处理用户的选择,通过监听控件的事件(如`select`事件)来获取选定的时间或日期。 总之,EXTJS 5的时间日期选择控件提供了强大的功能,不仅支持精确到秒的选取...
每个步骤面板可以是EXT的任何组件,如表格、表单、面板等,用于展示特定步骤的内容。 2. **导航栏(Navigation Bar)**:这是用户进行步骤切换的区域,通常包括“上一步”、“下一步”和“完成”等按钮。在某些情况...
### ext_表单提交_数据校验:深入解析与实践 #### 一、文本框输入控件(Ext.form.TextField) 在Ext JS框架中,`Ext.form.TextField`是一种用于收集用户输入的基本控件,它提供了丰富的配置选项来实现数据校验。...
在EXT表单中,TextField是最常见的输入控件,用于接收用户的文本输入。`vtype`是EXT TextField的一个关键属性,用于定义输入字段的验证规则,确保用户输入的数据符合特定格式或条件。 EXT中的TextField支持多种...
Ext.NET控件不仅具有高度定制性和灵活性,而且在性能上也有出色表现。 首先,ExtJS是一个开源的JavaScript库,主要用于构建富客户端Web应用。它包含了一系列的组件,如表格、面板、表单、菜单、树形视图等,以及...