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表单是否被修改过详解的更多相关文章

  1. Python的Django框架中forms表单类的使用方法详解

    用户表单是Web端的一项基本功能,大而全的Django框架中自然带有现成的基础form对象,本文就Python的Django框架中forms表单类的使用方法详解. Form表单的功能 自动生成HTML ...

  2. 判断form表单每个input字段是否有内容

    //---------------------------------------------------input失去焦点时判断是否有值 btn_click: function () { //inp ...

  3. jQuery判断 form表单提交时一些文本框的判断

    一: form表单提交时如果表单里有input标签为空那么不提交form表单. <head> <script type="text/javascript"> ...

  4. JQuery判断form表单是否为空

    功能:通过jquery判断form表单中是否有内容还未填写,如果有未填写的,则阻止提交 $(function () { $('form').bind('submit',function () {  / ...

  5. 关于form表单:hover没有修改表单子元素样式

    原来在写todolist的时候遇到的一个问题 是关于form表单的hover属性设置背景颜色 想要实现的效果如下: 但是一开始直接给form加hover选择器的时候是这样: 可以看到这样子直接加会使得 ...

  6. [extjs] ExtJs4.2 Form 表单提交

    基本代码: <script> Ext.onReady(function(){ Ext.create('Ext.form.Panel', { title: '登录', bodyPadding ...

  7. BootStrapt iCheck表单美化插件使用方法详解(含参数、事件等) 全选 反选

    特色: 1.在不同浏览器(包括ie6+)和设备上都有相同的表现 — 包括 桌面和移动设备 2.支持触摸设备 — iOS.Android.BlackBerry.Windows Phone等系统 4.方便 ...

  8. iCheck表单美化插件使用方法详解(含参数、事件等)

    iCheck   特色: 1.在不同浏览器(包括ie6+)和设备上都有相同的表现 - 包括 桌面和移动设备 2.支持触摸设备 - iOS.Android.BlackBerry.Windows Phon ...

  9. [转]iCheck表单美化插件使用方法详解(含参数、事件等)

    本文转自:http://www.exp99.com/jswz/f2e/1408696007_34.html iCheck   特色: 1.在不同浏览器(包括ie6+)和设备上都有相同的表现 — 包括 ...

随机推荐

  1. ffmpeg-linux32-v3.3.1

    . imageio-binaries/ffmpeg at master · imageio/imageio-binaries · GitHub https://github.com/imageio/i ...

  2. PSAM卡之常用APDU指令错误码【转】

    本文转载自:http://blog.csdn.net/lvxiangan/article/details/53933714 PSAM卡的内容交互,是通过APDU指令完成的,常见的APDU报文格式如下: ...

  3. iOS中打包.a静态库

    1.新建.a静态库工程 需要选择Static Library静态库工程模板新建工程,如下图: 新建静态库工程 实现需要打包的类,如下图: 实现需要打包的类 2.设置需要暴露的头文件 添加Headers ...

  4. luogu 3375 【模板】KMP字符串匹配

    我太菜了 今天才学会kmp #include<iostream> #include<cstdio> #include<algorithm> #include< ...

  5. nginx配置改变默认访问路径

    在安装完nginx服务后,url访问的默认路径是安装的路径html文件夹下的内容,如果需要指定自定义的路径,需要配置nginx.conf文件内容,这样通过url访问就可以了,比如: http://12 ...

  6. 698C

    Description n个视频,长度为k的缓存,每次询问,每个视频以pi的概率被选,如果不在缓存区则加入,如果缓存区满了,则最先进缓存的出来,问10^100次操作以后每个视频在缓存的概率 Input ...

  7. 基于Spark和Tensorflow构建DCN模型进行CTR预测

    实验介绍 数据采用Criteo Display Ads.这个数据一共11G,有13个integer features,26个categorical features. Spark 由于数据比较大,且只 ...

  8. Android 网络请求及数据处理

    Android 网络请求: 1.Volley   http://blog.csdn.net/t12x3456/article/details/9221611 2.Android-Async-Http  ...

  9. HTML5中File

    一 File对象与FileList对象 当将input元素的type类型设置为file时,web页面上会显示一个选择文本按钮和一个文本显示框,单击文件按钮可以选择一个文件,文本显示框中会显示选中的文件 ...

  10. Spring中AOP的两种代理方式(Java动态代理和CGLIB代理-转载

    内容是摘抄的,不知最初的原作者,见谅 Java 动态代理.具体有如下四步骤: 通过实现 InvocationHandler 接口创建自己的调用处理器: 通过为 Proxy 类指定 ClassLoade ...