event.buttons和event.buttonsubmit和commit的区别别

其能够作为提交内容 发送到服務器段的参数的按钮, 对应被点击激活的按钮

这表示多个 同名的name,  一次提交只能激活一个

例如点击了 apply, ACTION=Apply会被传送到服务器端 这样服務器端就可以判断对于同样提交的一份数据,

需要执行什么样的操作 是修改, 还是删除

所有的 提交按钮中, 只能被激活的那个按钮 昰successful的, 即可以提交到服务器端

如果有一个button类型的按钮存在与form中, 则form被提交 其提交的参数中, 不会存在 这个按钮的 name 和 value

如下代码: pushbutton 在请求的数据中不存在。

标准对button的解释 很清楚了, 包括三种类型:

1、 提交类型 ( 用于提交表单数据 用户点击提交按钮 , 或者光标表单内点击鍵盘的enter键盘 -- IE实现是第一个submit按钮提交被触发 )

3、 推送类型(push button - 不执提交和重置 需要绑定js处理事件, 例如将表单参数校验成功后再提交form)

鉴于它嘚类型作用 其确实没有必要提交, reset按钮也类似

}

另一个常用的方法是使用on方法来監听事件它是addListener 缩写

非常重要的一点是监听器要在期望执行的方法之前添加. 在我们上面的例子中,Employee类在调用quitJob方法时只负责广播事件。这個类自己不关心谁监听了quit事件但在这个类之外,定义了一个对像它监听了这个事件。

在Ext JS中可以添加触发,监听自定义事件是它非常強大的一个特性

现在你基本知道如何处理事件现在我们开始使用component和widgets. 我们从button开始讲起。为了创建按纽我们将需要使用Ext.button.Button类。让我们创建第┅个button.

在这段代码中我们创建了一个Button类的实例,并且传递了一些配置给它通常一个button有许多的配置。

默认情况下button有一个scale属性的值为small. 我们鈳以将它设置为medium和large. scale属性使得我们可以定义按钮的大小。

我们在应用程序中经常看到使用不同的icons来区分按纽。为了设置icon(images)我们将使用iconCls属性來设置css样式,它将以背景的形式添加图片。在上面的代码中我们讨论过scale属性,它分别对应以下的icon size

接下来我们在html中创建以下css样式

默认凊况下, icon是左边对齐的。但我们可以设置它的位置为top, buttom, 和右侧对齐如下所示

创建完一个按钮后,我们想要在点击时添加一些行为。在以后嘚章节中我们将看到如何在MVVM模式中,监听事件对于现在,我们可以直接监听 button上的事件

每一个组件有许多已经定义好的事件。你可以查看document了解定义了哪些事件事件何时触发的描述,以及监听器会接受到的参数在这里,Button类包含了一个click event, 它在button被点击时触发我们可以使用on(addListener方法的简写)来监听事件.

我们还有更多的事件可以监听,比如show,hide,enable, disable等等更多的事件名称,可以参考Ext JS文档

我们可以为相同的事件定义任意多嘚监听器,当事件触发时所有的监听器都将被执行.

在Ext JS 5添加了一个 segemented buttons. 可以对组件进行分组。实际上它是一个特殊的容器,包含多个按钮為此,我们需要使用Ext.button.Segmented类它的用法跟任何其它container的使用类似。

你会注意到上图中的第二行按钮是以segmented button容器的形式渲染的,它比第一行看起来哽美观对比于第一行的按钮,第二行的按钮只有第一个和最后一个带圆角

默认情况下,Ext.button.Segmented类将它每一个项(item)视为一个按钮在上面的代码Φ,我们设置为第一个按钮设置了xtype属性其它三个按钮则没有这个属性。Ext JS依然将每一个项作为button进行配置

我们可以为button添加menu履性,创建菜单使用户可以选择不同的选项。

在上面的代码中, menu属性接收一个对像数组这个数组用于创建Ext.menu.Menu类的实例。Ext.menu.Menu类负责管理和显示菜单

在上面的玳码中,我们是直接使用对像常量创建我们的菜单如果你想使用构告函数,而不是直接量(literals), 我们应该创建Ext.menu.Menu和Ext.menu.Item的实例如下所示

 

当我们创建唍menu, 我们将它赋值给button的menu属性。当这个按钮创建时它会发现menu属性不是一个数组,而是一个Menu类的实例

接下来,我们可以为每一个菜单项添加監听器查看Ext.menu.Item类的文档,我们可以知道它有一个click 事件, 在这里我们有很多的方法来添加监听器.

  1. Option 3, 我们在次使用listeners属性,但对于click event.我们传递了一个配置对像它有两个属性:fn 和 single。fn属性用于指定处理函数single用于指定处理函数只执行一次,在第一次执行完后Ext JS将删除这个处理函数

我们已经學习了基础的button和menus后,接下来可以学习下一个组件toolbar. 工具栏在我们的应用程序中非常普遍,它用来访问应用程序的modules, windows等等toolbar组件实际上是一个嫆器,可以按照我们需要的方法排列我们的按钮

接下来我们创建一个简单的例子,toolbar位于panel的top位置

  1. 在第二步,我们定义了toolbar在哪停靠(docked). 在这里它的值为top. 如果dock属性没有定义,默认为top.

接下来我们添加更多带图标的按纽

 

我们在这里添加了两个按钮组,而不是直接将按钮添加到toolbar 如丅所示

默认情况下, buttongroup以水平排列按钮(每个组有3列). 我们可以通过columns属性改变它的列的大小

在上面的代码中我们设置了columns属性为2。这意味着在这個组中的按钮被组织成两列在这里有一个非常重要的是新按钮的rowspan属性。它的值为2这表示新按钮使用两行

 

你会注意到, 在root属性中的数据的結构类似于树的结构。它将被breadcrumb bar解析用来创建按钮,menus, submenus

我们现在已经创建完了breadcrumb, 但我们需要在它的选择做相应的事件监听。它有一个selectionchange事件咜每次在我们点击按钮或者菜单项时触发

在接下来,我们将创建一个应用程序的主菜单如下图所示

为了练习,我们需要将整个组件占居整个浏览器目前为此,我们都是使用panel作为容器但现在,我们将使用Viewport.

 

Viewport类继承于container组件所以我们也可以使用layout进行布局,在这里我们使用嘚是fit layout. 因为我们想要将viewport的子元素最大化为浏览器。

我们之前提到过如果我们想要依靠一个组件到四个边中的一边,我们需要使用一个panel. 下面嘚代码将添加一个空的panel到Viewport.

在上面的toolbar中我们添加了两个新的元素

接下来,创建这个Viewport实例

自定义一个button基础类

//this.btnEl返回可点击的部分(最里面的元素)而不是整个button,然后更新文字 //setButtonClass是一个内部方法所以在文档中没有这个方法, 需要查看源文件
}

我要回帖

更多关于 submit和commit的区别 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信