EXTJS系列笔记————xtype为form的panel判断是不是dirty

extjs中的xtype的所有类型介绍 立即下载
extjs再用到表单form的时候,经常需要判断内容是不是被修改过。这里有许多陷阱,这里根据自己的经验给大家分享下:

一、对基本的form或者xtype为formpanel的组件,经常会出现 每次调用form的isDirty()方法返回的都是true,这种情况下其实可以去看下API,

  1. /** 
  2.  * @cfg {Boolean} trackResetOnLoad  
  3.  * 如果为true,则表单对象的form.reset()方法重置到最后一次加载的数据或setValues()数据,以相对于一开始创建表单那时的数据。  
  4.  * If set to true, form.reset() resets to the last loaded or setValues() data instead of when the form was first created. 
  5.  */  
  6. trackResetOnLoad : false,  

trackResetOnLoad是在form表单load数据的时候是否记录字段原始值的开关。 

在setVlaues中会根据这个开关进行判断,如果为true就记录这个数据。

 

所以你可以在初始化 form的时候给他的trackResetOnLoad属性置为true.

1、以上适用于类似于新增打开的form判断。如果是类似点击修改的操作,必须修改

      form的originalValue,在loadRecord数据后,再次给原始值复制:

  1. form.getForm().items.each(function(f){  
  2.      f.originalValue=String(f.getValue());   
  3.  });  

 2、如果form不是通过setValues或loadRecord来赋值,而是单个组件分别赋值trackResetOnLoad的值可不用配置。


二、xtype为form的组件,一开始我也尝试着给他设置TrackResetOnLoad属性,但是一直失败。后来看了源码知道,原来xtype为form的组件其实本质是一个panel,只是给了它一些form的基本属性而已,知道这个以后,果断利用他的getForm()方法拿取form,然后在用form.setConfig("trackResetOnLoad",true);然后在form的setValues()以后重新reset()下,让他的oraginalVal变成最新的值,总结的代码
var form = Ext.getCmp("form").getForm();

form.setConfig("trackResetOnLoad",true);

form.setValues(obj);

form.reset.

接下去用isDirty()取判断时候回以setValues()以后改变的值作为有么有修改的标准。

Flutter版本升级踩坑实录:从3.27到3.35,我们是如何修复Impeller引擎导致的花屏问题的? 本文详细记录了团队在Flutter版本升级过程中遇到的Impeller引擎导致的花屏问题及解决方案。从问题诊断到最终升级至稳定版3.35,文章分享了排查步骤、升级策略和性能对比数据,为开发者提供了实用的参考经验。 阅读详情

相关推荐

UG/NX二次开发Siemens官方NXOPEN实例解析—1.3 BlockStyler/ExtrudewithPreview

随着工业智能化的不断发展,UG二次开发的需求越来越多,也吸引了大批的二开从业人员,本人作为一名资深IT从业者(10年+)也毅然加入二次开发大军。然而,和流行IT行业(互联网、金融、医疗等)相比,工业智能化的门槛显得更高一点,专业的工业软件,相对封闭的开发理念和更小的开发圈子,让刚进入二开的从业者有点举步维艰。边学边整理,希望通过这系列文章的整理能给二开的生态增添一叶绿。

MarcoPro的博客 1633

ExtJS 3.4 form表单中isDirty()的使用方法

isDirty() : Boolean Returns true if any fields in this form have changed from their original values. Note that if this BasicForm was configured with trackResetOnLoad then theFields' original value

zpryan的专栏 2617

数字IC物理验证实战 | 从Calibre LVS报告到Innovus定位的Debug全链路解析

本文详细解析了数字IC物理验证中Calibre LVS报告的Debug全流程,从INCORRECT NETS错误的初探到Innovus定位技巧,提供了实战案例和高效工具的使用方法。重点介绍了Calibre高亮功能、Innovus验证命令以及前后端工具联动的关键策略,帮助工程师快速定位和解决LVS问题,提升物理验证效率。

weixin_30919429的博客 127

Extjs6组件——Form大家族成员介绍

本文基于ext-6.0.0 一、xtype   form一共有12种xtype,下面来一一举例说一下。 1、textfield   这个是用的最多的form之一。   { xtype: 'textfield', fieldLabel:'姓名(textfield)', name:'userN...

yijianzhi77的博客 709

从零开始用飞牛fnas搭建集成DeepSeek-R1的远程AI工作台

从零开始用飞牛fnas搭建集成DeepSeek-R1的远程AI工作台

AI+全栈,AI+应用,实操落地,前沿技术 3808

Stata:手动安装ivreghdfe包的完整指南与常见问题解决

本文提供了Stata中手动安装ivreghdfe包的完整指南,包括准备工作、详细安装步骤及常见问题解决方案。ivreghdfe作为处理高维固定效应模型的强大工具,依赖ftools、reghdfe和ivreg2三个核心组件,手动安装可避免版本冲突问题。文章还分享了进阶使用技巧,如并行计算加速和保存固定效应估计值,助力用户高效完成工具变量回归分析。

weixin_29251131的博客 929

第四章 介绍Extjs的formPanel (入门教程)

第四章 介绍Extjs的formPanel (入门教程)   这章我们主要简单介绍一下Extjs的formPanel——formPanel的创建、formPanel字段数据的取得、xtype属性的使用、ComboBox的使用。   Extjs的formPanel分为两部分: 1,Ext.form.FormPanel : 这个form我们可以理解为管表现的,就是呈现在界面我们看到的form...

czpae86x的专栏 368

手把手教你用C#和LibUsbDotNet实现USB设备通信(含完整代码示例)

本文详细介绍了如何使用C#和LibUsbDotNet库实现USB设备通信,包括设备识别、连接建立、同步/异步数据读写等核心操作。通过完整的代码示例,开发者可以快速掌握USB通信的关键技术,适用于工业自动化、医疗设备等多种场景。重点讲解了数据读写优化和错误处理技巧,帮助提升通信效率和可靠性。

a3b4c5的博客 705

讲解Ext JS界面设计(布局,xtype,items,vbox,form,column)

关键词: xtype,items,vbox,hbox,anchor,defaults,padding,frame,ui,form,column,

生活的每一天都是新的开始,热爱生活,享受每一刻的精彩。 2243

【Flink cdc】Data row is smaller than a column index, internal schema representation is probably xxx

翻译一下:当scan.startup.mode=EARLIEST_OFFSET时,如果在最早的offset之后表结构有过变化就无法支持。原因应该是在binlog 的earliest_offset之后,表结构被修改过。我的解决方案:source配置中使用。mysql source配置使用。,以时间戳为消费依据。

integrity 2085

40岁从智驾转具身智能之路

我的工作经历比较复杂,本科毕业后工作2年再次读研的,本科和硕士都是机械专业,硕士毕业后干了5年CAM和机器人再转入到自动驾驶行业。在自动驾驶干了8年,发现自动驾驶已经到了一个瓶颈,再次转行做具身智能。我就谈谈自己的最近这次转型之路。

hzm8341的博客 638

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传递给后台是一个...

weixin_30402085的博客 297

在 Eclipse 中接入 DeepSeek:开启 Java 开发新效率

DeepSeek 能够根据自然语言描述,精准生成高质量的 Java 代码片段。无论是简单的方法编写,比如 “编写一个 Java 方法,用于计算两个整数的乘积”,还是复杂的类和功能模块创建,例如 “创建一个 Java 类,实现文件的读写操作,并包含异常处理机制”,它都能快速给出合理且可运行的代码示例。DeepSeek 生成的代码不仅实现了基本功能,还遵循 Java 的编码规范,添加了必要的注释,让代码更易于理解和维护,大大节省了开发者从头编写代码的时间和精力。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4068

Vue超小超灵活的“XForm”表单解决方案

Vue超小超灵活的“XForm”表单解决方案

Thinking Code 4355

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

ext 组件分类

组件大致可以分成三大类,即基本组件、工具栏组件、表单及元素组件。 基本组件有: xtype Class ------------- ------------------ box Ext.BoxComponent 具有边框属性的组件 button Ext.Button  按钮 colorpalette ...

郴州软件学习www.javaketang.com 363

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

ExtJs xtype的使用

xtype可作为Ext控件的简写,都会对应一个Ext控件。当然这里你可以自定义这个xtype,通过自定义的Ext控件来绑定,主要由Ext.reg方法去注册xtype。 我们还可以直接用xtype(比如TextField对应的xtype是textfield)的对象形式来创建组件,比如在面板的items属性中,尤其是多个组件或需要写许多的ExtJs相关代码时就更值得推荐。 两种形式的写法如下: items[ new Ext.form.TextField({fieldLabel:'姓名',id:'n..

m0_44968817的博客 543

XForms 入门简介,第 1 部分: 新的 Web 表单标准

为何使用 XForms? 在讨论 XForms 之前,首先简要回顾一下表单的历史。 在万维网历史的早期,使用简单的文本输入表单向运行在服务器上的 CGI 程序发送请求,为那些勇于向未知领域探索的先驱者增加了一些交互性。随着 Web 日趋成熟,网站上提供的数据输入表单越来越复杂。 现在很容易找到极其复杂的表单,特别是在电子商务网站或论坛上。这些可能是运行在服务器上的 PHP 或 J

664

ExtJs学习笔记(16)_Form布局

这是最重要的一个布局,几乎所有的表单界面都可以采用form布局,详细的用法本文不作讨论(可以查阅官方API文档),这里只给出一个简单的示例 <script type="text/javascript">     Ext.onReady(function() {         var win = new Ext.Window({             title: "fo...

weixin_33901641的博客 161

ExtJs xtype一览(转载)

基本组件: xtype Class 描述 button Ext.Button 按钮 splitbutton Ext.SplitButton 带下拉菜单的按钮 cycle Ext.CycleButton 带下拉选项菜单的按钮 buttongroup Ext.ButtonGroup 编组按钮(Since 3.0) slider...

a8366的专栏 732

ExtJS FormPanel xtype类型 总汇

xtype            Class -------------    ------------------ box              Ext.BoxComponent button           Ext.Button buttongroup      Ext.ButtonGroup colorpalette     Ext.ColorPalette compon

超然等待的专栏 2074

Extjs之FormPanel布局

FormPanel有两种布局:form和column。 form是纵向布局,column为横向布局。默认为后者。使用layout属性定义布局类型。对于一个复杂的布局表单,最重要的是正确分割,分割结果直接决定布局能否顺利实现。 如果不再使用默认布局,那么我们必须为每一个元素指定一种布局方式,另外,还必须遵循以下几点: 落实到任何一个表单组件后,最后总是form布局 defaultType属性不一定

idomyway的博客 2935

ExtJS学习笔记(六) 面板的使用(Ext.Panle、Ext.TabPanel、Ext.Viewport)

声明:本文案例讲解摘自资料,部分资料收集自他人博客。  通过此文能学习到如下内容       1.创建一个简单的面板 Ext.Panel       2.制作一个可以拖动的面板 Ext.Panel       3 .使用选项卡面板       3.使用Ext.Viewport搭一个简单布局(用一个小例子来总结本文所有内容)       面板是ExtJs控件的基础,很多控件都是在面板的基础上扩展的,

萧逸闲侃 1738

(三)EasyUI 使用——form表单1

form表单组件主要有以下内容(如下图)                   1. validatebox验证框               姓名:必填/1-4个字符/必填中文   邮箱:必填/1-30个字符/必填符合邮箱格式/后缀必须是com或cn   密码验证: <div style="margin:100px"></div> 用户名:&am...

weixin_34185320的博客 323

ExtJs6获取form里的数据

ExtJs6获取form里的数据 1.PanoramForm.js form的items部分 items: [{ xtype: 'form', id:'customerF', modelValidation: true, defaults: { labelAlign: 'left', m...

Jinyao的博客 1116

Extjs中的xtype一览表

Extjs中的xtype一览表

biubiubiubibibi的博客 762
上一篇: EXTJS系列笔记————实现grid中每行后面的操作按钮
下一篇: EXTJS系列笔记————grid新增和修改数据与后台的快速交互
阿尔卑斯0283
博客等级 码龄14年 51粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值