ExtJS里handler
handler与Action相关联,一个Action可以有多个Component引用;
Action是一个可被共享的对象,有五个主要的属性:text, handler, iconCls, disabled, hidden
component的构建方式比较有意思:
new Ext.Button(action)
是Button接收一个Action对象作为构造参数吗?但是查看Button的API却没有发现action属性。反而Button的构造参数是一个(Object config),也就是说,只是一个配置对象(包含各种属性),而Action的五个属性正好Button也都有,所以,可以接收一个Action来进行构造。
其他属性不考虑,看handler,Button中的handler配置项文档说明,这个handler是与click Event关联的。也就是说,click是Button这个Component的首要Event(参考Action中handler的文档),这就是Handler的运行方式:被某个组件的首要Event所触发。
Ext.require([
'Ext.form.*'
]);
Ext.onReady(function() {
var win;
function showContactForm() {
if (!win) {
var form = Ext.widget('form', {
layout: {
type: 'vbox',
align: 'stretch'
},
border: false,
bodyPadding: 10,
fieldDefaults: {
labelAlign: 'top',
labelWidth: 100,
labelStyle: 'font-weight:bold'
},
defaults: {
margins: '0 0 10 0'
},
items: [{
xtype: 'fieldcontainer',
fieldLabel: 'Your Name',
labelStyle: 'font-weight:bold;padding:0',
layout: 'hbox',
defaultType: 'textfield',
fieldDefaults: {
labelAlign: 'top'
},
items: [{
flex: 1,
name: 'firstName',
fieldLabel: 'First',
allowBlank: false
}, {
width: 30,
name: 'middleInitial',
fieldLabel: 'MI',
margins: '0 0 0 5'
}, {
flex: 2,
name: 'lastName',
fieldLabel: 'Last',
allowBlank: false,
margins: '0 0 0 5'
}]
}, {
xtype: 'textfield',
fieldLabel: 'Your Email Address',
vtype: 'email',
allowBlank: false
}, {
xtype: 'textfield',
fieldLabel: 'Subject',
allowBlank: false
}, {
xtype: 'textareafield',
fieldLabel: 'Message',
labelAlign: 'top',
flex: 1,
margins: '0',
allowBlank: false
}],
buttons: [{
text: 'Cancel',
handler: function() {
this.up('form').getForm().reset();
this.up('window').hide();
}
}, {
text: 'Send',
handler: function() {
if (this.up('form').getForm().isValid()) {
// In a real application, this would submit the form to the configured url
// this.up('form').getForm().submit();
this.up('form').getForm().reset();
this.up('window').hide();
Ext.MessageBox.alert('Thank you!', 'Your inquiry has been sent. We will respond as soon as possible.');
}
}
}]
});
win = Ext.widget('window', {
title: 'Contact Us',
closeAction: 'hide',
width: 400,
height: 400,
minHeight: 400,
layout: 'fit',
resizable: true,
modal: true,
items: form
});
}
win.show();
}
var mainPanel = Ext.widget('panel', {
renderTo: Ext.getBody(),
title: 'Welcome!',
width: 500,
bodyPadding: 20,
items: [{
xtype: 'component',
html: 'Thank you for visiting our site! We welcome your feedback; please click the button below to ' +
'send us a message. We will respond to your inquiry as quickly as possible.',
style: 'margin-bottom: 20px;'
}, {
xtype: 'container',
style: 'text-align:center',
items: [{
xtype: 'button',
cls: 'contactBtn',
scale: 'large',
text: 'Contact Us',
handler: showContactForm
}]
}]
});
});
分享到:
相关推荐
4. "popup-contactform.php" 可能是控制弹出表单显示的PHP文件,包含弹出逻辑和表单的初始化。 5. "show-captcha.php" 是验证码显示和验证的后端支持,可能实现了生成随机验证码和验证用户输入的逻辑。 6. "contact-...
这可以通过改变HTML元素的样式或弹出对话框实现。 通过学习以上这些知识点,你可以创建一个功能齐全且用户友好的简单联系表单,允许访客在不离开当前页面的情况下与网站所有者沟通。在实际应用中,还可以考虑添加更...
使用JavaScript或jQuery可以轻松实现这一点,例如弹出对话框或改变元素的样式。 10. **日志记录**:为了追踪和诊断问题,服务器端可以记录每个请求的详细信息,例如日志文件。这样可以帮助开发者了解系统运行情况,...
3. **fancybox** - Fancybox是一个流行的轻量级JavaScript库,用于创建弹出式的图像、视频或其他媒体视图。在颜色可设定的网站中,Fancybox可能被用来展示预设或用户自定义颜色的效果,用户可以通过点击触发Fancybox...
Fancybox是一种轻量级的JavaScript库,用于创建弹出式图像、媒体和网页框架,常用于产品预览或下载按钮的美化。 3. **reset.css** - 重置CSS文件,用于消除浏览器之间的默认样式差异,确保跨平台的样式一致性。 4....
- **picker 从底部弹起的滚动选择器组件**:用户可以从列表中选择一个选项。 - **switch 开关选择器组件**:用于开启或关闭某些设置。 - **slider 滑动选择器组件**:用户可以通过滑动来选择一个值。 ##### 5.1.1 ...
3. **fancybox**:Fancybox通常是一个轻量级的JavaScript库,用于创建弹出式的图像、视频或其他媒体查看器。它可以帮助提升用户体验,使多媒体内容在小屏幕设备上更易于查看。 4. **images**:这是一个图片文件夹,...
- 在弹出的对话框中,输入表单名称,例如“ContactForm”,并选择默认模板。 - 单击“完成”以创建表单。 创建完成后,你会看到一个空白的`JFrame`容器出现在设计视图中。接下来,可以开始向这个容器添加组件了。 ...
这些脚本通常用于增强用户体验,比如平滑滚动、弹出窗口、图片轮播等功能。 - **自定义脚本**:用户可以根据需要添加自定义JavaScript代码。这可以通过WordPress的“自定义CSS和JavaScript”功能或通过安装特定的...
在.NET框架中,Model Pop-up通常指的是在用户界面(UI)上弹出一个模态对话框,用于显示或编辑特定的数据模型。这个实例可能是一个Windows Forms或者WPF应用程序中的功能,用于提供更好的用户体验,比如在不离开当前...
在"mypersonalwebsite"项目中,可能有一个"script.js"文件,用于处理用户与网页的交互,如点击按钮弹出信息,滚动时改变导航栏样式,或者动态加载内容。例如,`document.getElementById('contact-form')....
- **修改联系人**:选中列表框中的联系人,弹出编辑窗体进行信息修改,然后更新到数据结构。 - **删除联系人**:用户选择列表框中的联系人,点击“删除”按钮,从数据结构中移除该联系人。 - **导入导出数据**:...
- **点击事件**:为按钮或其他元素添加点击事件处理程序,实现特定功能,如弹出窗口或跳转到其他页面。 #### 五、网站实现示例 下面是一个简单的HTML结构代码示例: ```html <!DOCTYPE html> <meta http-equiv...
5. **对话框**: 在添加和编辑联系人时,可能需要弹出对话框来获取用户输入。对话框如InputBox和MessageBox在C#中可以通过ShowDialog方法显示,提供了一种与主窗口分离的交互环境。 6. **DataGridView控件**: 这是...
30. **New Posts Pop-up**:以弹出窗口的形式展示新文章或评论,但过度使用可能会影响用户体验。 31. **Find Us**:集成Google Maps,方便用户找到您的实际位置。 32. **One Year Ago**:回顾一年前发布的内容,...
4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送...
4.26 离开与关闭程序的弹出窗口——对话窗口上的ICON图标 第5章 交互式通信服务与手机控制 5.1 具有正则表达式的TextView——Linkify规则 5.2 ACTION!CALL!拨打电话——Intent.ACTION.CALL的使用 5.3 自制发送...