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 values are updated when the values are loaded bysetValuesor loadRecord.

Parameters:
  • None.

Returns:Boolean

以前写过同样的一个问题,不是很全面,解释的也不明确。现在整理一下:

在form表单中,判断是否表格中的数据发生变化,可以使用isDirty()方法。

注意:如果表单中字段是原始的值,没有改变,即:数据刚load完,这个时候为原始值;

如果数据在load完后,又进行了setValue操作,则数据发生改变,isDirty返回的值为:true;

这样就无法使用isDirty;所以如果想使用isDirty进行判断是,需没有set表格值;

此外还有 需在formPanel 必须配置trackResetOnLoad为true;

如下:

如果在load数据时,对表单中的数据进行setValue:
    personForm.load({
                    url : 'xxxxx',
                    success : function(form, action) {
                        var json = Ext.decode(action.response.responseText);
                        personForm.getTopToolbar().getComponent('personInfoStatus').setValue(json.rows[0].status);
                        personForm.getForm().findField('experience').setValue(json.rows[0].experience);
                     },
                    failure : function(response, options) {                     
                        Ext.Msg.alert("提示信息", "不在转正定级范围内!");
                    }
                })


那么:

if (personForm.getForm().isDirty()) {
			Ext.Msg.alert('提示', '请对数据进行修改');
			return;
		}
将始终会提示“请对数据进行修改”

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ExtJS和Layui都是前端框架,但是它们之间没有直接的集成或兼容性。如果你想在ExtJSform表单使用Layui组件,需要手动引入Layui的相关CSS和JS文件,并且在代码使用Layui的API来实现组件的渲染和交互。 以下是一个使用Layui的日期选择器组件在ExtJSform表单的示例代码: ```javascript // 引入Layui的CSS和JS文件 Ext.Loader.setConfig({ paths: { 'layui': 'path/to/layui' } }); Ext.require(['layui/css/layui.css', 'layui/layui.js']); // 在form表单添加一个日期选择器组件 Ext.create('Ext.form.Panel', { title: 'Form Panel', width: 400, bodyPadding: 10, renderTo: Ext.getBody(), items: [{ xtype: 'textfield', fieldLabel: 'Name', name: 'name' }, { xtype: 'textfield', fieldLabel: 'Email', name: 'email' }, { xtype: 'textfield', fieldLabel: 'Phone', name: 'phone' }, { xtype: 'textfield', fieldLabel: 'Date', name: 'date', listeners: { afterrender: function(field) { // 使用Layui的日期选择器组件渲染日期输入框 layui.use('laydate', function(){ layui.laydate.render({ elem: field.getEl().down('input').dom }); }); } } }], buttons: [{ text: 'Submit', handler: function() { // 提交表单 } }] }); ``` 在上面的代码,我们首先使用Ext.Loader引入了Layui的CSS和JS文件,然后在form表单添加了一个文本框和一个日期输入框。在日期输入框的listeners,我们使用Layui的日期选择器组件渲染了该输入框,从而实现了在ExtJSform表单使用Layui组件的效果。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值