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. mysql group by 组内排序 group by 原理

    mysql group by 组内排序   SELECT * FROM (SELECT MAX(id) AS t,wukong_uid, 1 AS tag FROM  toutiao_uid_gath ...

  2. YTU 2542: 弟弟的作业

    2542: 弟弟的作业 时间限制: 1 Sec  内存限制: 128 MB 提交: 130  解决: 57 题目描述 你的弟弟刚做完了"100以内数的加减法"这部分的作业,请你帮他 ...

  3. luogu 1083 借教室

    题目大意: 有一些教室 我们需要处理接下来n天的借教室信息 其中第i天学校有ri个教室可供租借 共有m份订单 每份订单用三个正整数描述 分别为dj sj tj 表示从第sj天到第tj天租借教室 每天需 ...

  4. 洛谷P1719 最大加权矩形

    题目描述 为了更好的备战NOIP2013,电脑组的几个女孩子LYQ,ZSC,ZHQ认为,我们不光需要机房,我们还需要运动,于是就决定找校长申请一块电脑组的课余运动场地,听说她们都是电脑组的高手,校长没 ...

  5. 第九周 Leetcode 502. IPO (HARD)

    Leetcode 502 一个公司 目前有资产W 可以选择实现K个项目,每个项目要求公司当前有一定的资产,且每个项目可以使公司的总资产增加一个非负数. 项目数50000 设计一个优先队列,对于当前状态 ...

  6. 洛谷P3690 LCT模板

    题目:https://www.luogu.org/problemnew/show/P3690 自己竟然从没有钻研过LCT上的连通性问题! 于是被最后一个点卡了,似乎因为 find 函数只能找出连通性而 ...

  7. 移动前端第二弹:善用meta

    前言 在移动前端第一弹:viewport详解中,我们讲了viewport,那是一个关于meta的故事.这次我们会就将meta这个故事讲得更广阔.更有意思一些. 写过HTML的童鞋,应该都对这个不陌生, ...

  8. 佛祖保佑 永无bug 代码注释

    // // _oo0oo_ // o8888888o // 88" . "88 // (| -_- |) // 0\ = /0 // ___/`---'\___ // .' \\| ...

  9. Left Join 时筛选条件在on后与where后的区别

    a left join  b 时限制条件在on后, 相当于先筛选右连接表b的数据后,再进行数据连接.形成最终的集合. 这时不影响a表中相关字段的显示. SELECT T001W~WERKS, LGOR ...

  10. python中多线程(1)

    一多线程的概念介绍 threading模块介绍 threading模块和multiprocessing模块在使用层面,有很大的相似性. 二.开启多线程的两种方式 1.创建线程的开销比创建进程的开销小, ...