ExtJs如何判断form表单是否被修改过详解
1.Extjs表单提交主要有三种方式:
1, EXT的form表单ajax提交(默认提交方式)
相对单独的ajax提交来说优点在于能省略写参数数组 ,form.getForm().submit
3、EXT的ajax提交,Ext.Ajax.request
2、EXT表单的非ajax提交
在我看来:采用第1,2种都很方便,关键是Ext.Ajax.request传递给后台是一个字符串形式的,需要Jason解析
2.记录代码问题:
SaveStudentDetails:function(btn,event){
var form = Ext.getCmp('StudentDetailsForm');
var formValues = form.getValues();
var userstore = this.getStore('StudentList');
if(form.getForm().isDirty()==false){
Ext.MessageBox.alert('提示','您没有修改或新增任何资料');
return;
}
form.getForm().submit({
clientValidation: true,
url: 'updateInf.action',
params: {
newStatus: 'delivered'
},
success : function(form2, action){
Ext.Msg.alert('更新提示' , action.result.msg) ;
userstore.load();
btn.up('window').close();
console.log(form);
console.log(form2);
//form.up('window[id=StudentDetailsWindow]').close();
//form.up('window').close();
},
failure : function(form , action){
switch(action.failureType){
case Ext.form.action.Action.CLIENT_INVALID :
Ext.Msg.alert('修改失败', '表单填写错误,输入无效值或没填完');
break ;
case Ext.form.action.Action.CONNECT_FAILURE :
Ext.Msg.alert('修改失败', '表单填写错误,输入无效值或没填完');
break ;
case Ext.form.action.Action.SERVER_INVALID :
Ext.Msg.alert('更新提示', action.result.msg);
}
}
});
},
问题1:ExtJs如何判断form表单是否被修改过?怎样让Form表单修改才能提交?
看代码5-8,这里使用isDirty()判断,实现效果图如图所示:

但是这里有个问题,就是这个form的字段是loadRecord来的,
var form = win.down('form').getForm();
form.loadRecord(record);
所以无论怎样,这里的form.isDirty总是true,因为form只要load就意味着它的值被改变了,所以在view层的form里要加上一句话:trackResetOnLoad:true,
参考资料:http://doc.okbase.net/wangs7345/archive/111076.html
trackResetOnLoad是在form表单load数据的时候是否记录字段原始值的开关。 在setVlaues中会根据这个开关进行判断,如果为true就记录这个数据。
如果为trackResetOnLoad:true,,则表单对象的form.reset()方法重置到最后一次加载的数据或setValues()数据,以相对于一开始创建表单那时的数据。
问题2:怎样使得Form值修改之后的值立即展示
代码行17,把它的store重新load了一下
问题3:怎样使修改之后窗口就关闭
代码行18-22,这里的Window可以通过btn和Window里面的form找到
但是有个问题,为什么success里面的form是form2,因为要操作的form和success里面的form不是一个,success里面的form是form.Basic里面的,不是这里关闭的form
所以这里的window可以通过3种方式找到
btn.up('window').close();
form.up('window[id=StudentDetailsWindow]').close();
form.up('window').close();
问题4:Extjs什么时候用getForm(),什么时候不用getForm()
查看api,当说到BasicForm的时候就getForm
当使用一个方法时候,如果这个form.panel里面有就可以直接使用,如果没有,就查Ext.Basic ,这个时候用到的就是Basic类型的,就要getForm
ExtJs如何判断form表单是否被修改过详解的更多相关文章
- Python的Django框架中forms表单类的使用方法详解
用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...
- 判断form表单每个input字段是否有内容
//---------------------------------------------------input失去焦点时判断是否有值 btn_click: function () { //inp ...
- jQuery判断 form表单提交时一些文本框的判断
一: form表单提交时如果表单里有input标签为空那么不提交form表单. <head> <script type="text/javascript"> ...
- JQuery判断form表单是否为空
功能:通过jquery判断form表单中是否有内容还未填写,如果有未填写的,则阻止提交 $(function () { $('form').bind('submit',function () { / ...
- 关于form表单:hover没有修改表单子元素样式
原来在写todolist的时候遇到的一个问题 是关于form表单的hover属性设置背景颜色 想要实现的效果如下: 但是一开始直接给form加hover选择器的时候是这样: 可以看到这样子直接加会使得 ...
- [extjs] ExtJs4.2 Form 表单提交
基本代码: <script> Ext.onReady(function(){ Ext.create('Ext.form.Panel', { title: '登录', bodyPadding ...
- BootStrapt iCheck表单美化插件使用方法详解(含参数、事件等) 全选 反选
特色: 1.在不同浏览器(包括ie6+)和设备上都有相同的表现 — 包括 桌面和移动设备 2.支持触摸设备 — iOS.Android.BlackBerry.Windows Phone等系统 4.方便 ...
- iCheck表单美化插件使用方法详解(含参数、事件等)
iCheck 特色: 1.在不同浏览器(包括ie6+)和设备上都有相同的表现 - 包括 桌面和移动设备 2.支持触摸设备 - iOS.Android.BlackBerry.Windows Phon ...
- [转]iCheck表单美化插件使用方法详解(含参数、事件等)
本文转自:http://www.exp99.com/jswz/f2e/1408696007_34.html iCheck 特色: 1.在不同浏览器(包括ie6+)和设备上都有相同的表现 — 包括 ...
随机推荐
- 【codevs2011】【LNOI2013】最小距离之和
floyed水题 #include<algorithm> #include<iostream> #include<cstdlib> #include<cstr ...
- Codeforces Round #228 (Div. 2) C. Fox and Box Accumulation
C. Fox and Box Accumulation time limit per test 1 second memory limit per test 256 megabytes input s ...
- iOS开发个人开发账号的证书详细使用及介绍
本人也和大家一样在学习iOS的开发,在开发当中最烦的就是证书出问题,主要是没有理解透证书的含义,因此查阅了一些资料,才对证书有了一定的认识,本文章就是介绍个人的个人理解,有不对的地方大加可以留言提醒, ...
- 利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全)
利用JFreeChart生成区域图 (5) (转自 JSP开发技术大全) 14.5 利用JFreeChart生成区域图 通过JFreeChart插件只能生成普通效果的区域图,利用工厂类ChartFac ...
- CentOS常用基础命令大全
这篇文章主要介绍了CentOS常用基础命令大全,学习centos的朋友需要掌握的知识,需要的朋友可以参考下 1.关机 (系统的关机.重启以及登出 ) 的命令shutdown -h now 关闭系统(1 ...
- Java IO 字节流与字符流 (二)
1. 什么是流 Java中的流是对字节序列的抽象,我们可以想象有一个水管,只不过现在流动在水管中的不再是水,而是字节序列.和水流一样,Java中的流也具有一个“流动的方向”,通常可以从中读入一个字节序 ...
- 在WIN7里IE8的开发人员工具打不开的解决办法
IE8新增了开发人员工具,非常不错,比早期的DevToolbar好用多了.不过在我的Win7下使用的时候偶尔会出现一个莫名其妙的问题,就是整个开发人员工具窗口消失了,打不开了.当你使用win+Tab切 ...
- .NET Runtime version 2.0.50727.8762 - 执行引擎错误(7969097A) (80131506)
VS2010调试IIS发布的web工程提示:无法连接到 Visual Studio 开发服务器 .NET Runtime version 2.0.50727.8762 - 执行引擎错误(7969097 ...
- 10.11 NOIP模拟题(1)
/* 离散化 差分 */ #include<bits/stdc++.h> #define N 4000007 using namespace std; int n,ans; int tmp ...
- Pycharm初始创建项目和环境搭建(解决aconda库文件引入不全等问题)
1.新建工程 1.选择新建一个Pure Python项目,新建项目路径可以在Location处选择. 2.Project Interpreter部分是选择新建项目所依赖的python库,第一个选项会在 ...