0 0

如何从 form 取值以及如何取得 combo 组件的默认值5


如上图是一个 combo 组件,定义如下
{
	fieldLabel: '性质',
	id: 'kind',
	name: 'kind',
	xtype: 'combo',
	mode: 'local',
	triggerAction: 'all',
	store: new Ext.data.SimpleStore({
		fields: ['kind'],
		data: [['商业'], ['其他']]
	}),
	displayField: 'kind',
	valueField: 'kind',
	emptyText: '商业',
	editable: false,
	lazyInit: false,
	typeAhead: true,
	selectOnFocus: true,
	valueNotFoundText: '商业',
	value: proj.kind
}

当然,为了取值,我加了很多不必要的属性。
我需要在浏览器端把 formPanle 中的元素取出来,组织成一个 XML 字符串。使用如下代码:
for (var i = 0, fld; fld = fm.findField(i); i++) {
	alert(fld.id+" = '"+document.getElementById(fld.id).value+"|"+fld.getValue()+"'");
}

我希望如果用户不操作上面那个 combo,就使用默认值“商业”,但是使用 EXT 的方法 fld.getValue() 得到的是空值,而 js 方法 document.getElementById(fld.id).value 能够得到默认值“商业”。
请问正确的设计应该如何获取?

BTW:

proj.kind 是返回的对象,可能为空,而我的要求就是为空的时候就取默认值。

另外,我还有一个 datefield 组件,定义如下:
{
	id: 'INDATE',
	name: 'INDATE',
	xtype: 'datefield',
	format: 'Y-m-d',
	value: new Date()
}

我用 EXT 方法 fld.getValue() 得到的是 Thu Jul 30 2009 00:00:00 GMT+0800,而 js 方法得到的才是我想要的 2009-07-30
请知道如何做的朋友不吝指教,谢谢~!
问题补充:
引用
fld.getValue() == null ? "商业":fld.getValue()

不行,因为必须要设计得具有通用性。在那个接口方法中必须要处理很多业务的 form,而且,还必须要多未来的业务响应。

暂时就用 js 方法了,有问题再来看。不过继续期待更好的解决方法
问题补充:
感谢大家!都或多或少有帮助,虽然分少,但不知道如何让大家平分,就选一个吧。

昨晚仔细看了 api,最终的方法如下,希望对后来者有所帮助,如果大家还有更好的方法,可以直接站内联系我,谢谢。
fm.getForm().setValues(proj);
		
var flds = fm.getForm().getValues();
for (key in flds) {
	alert(key + " = '" + flds[key] + "'");
}
2009年7月30日 15:07
  • 大小: 3.1 KB

4个答案 按时间排序 按投票排序

0 0

采纳的答案

你的combo选项只有[['商业'], ['其他']],没有这2个选项对应的value吗?
我没怎么明白你想要做什么,你可以看一下我的combo的使用,希望对你有帮助

var myCombo= new Ext.form.ComboBox({
        store: [['','--Select--'],['1','Enable'],['0','Disable']],
        hiddenName: 'status',
        mode: 'local',
        forceSelection: true,
        editable: false,
        triggerAction: 'all',
        lazyInit: false,
        lazyRender: true,
        autoShow: true,
        allowBlank: true,
        fieldLabel: 'Status',
        anchor: '90%'
    }); 
var selectValue = myCombo.getValue();//得到当前选中选项对应的value
//例如:‘’,‘0’,‘1’
var rawValue    = myCombo.getRawValue();//得到当前选中的字符串
//例如:'--Select--','Enable'
//想初始显示时让某个值被选中的话用如下方法
myCombo.setValue('1');//将使得'Enable'被选中

另外,时间字段的取值用rawvalue
{   
    id: 'INDATE',   
    name: 'INDATE',   
    xtype: 'datefield',   
    format: 'Y-m-d',   
    value: new Date()   
} 
var dateValue = Ext.getCmp('INDATE').getRawValue();

2009年7月30日 17:01
0 0

默认值:

value: proj.kind || '一些默认值'

2009年7月30日 17:10
0 0

引用
我用 EXT 方法 fld.getValue() 得到的是 Thu Jul 30 2009 00:00:00 GMT+0800,而 js 方法得到的才是我想要的 2009-07-30
请知道如何做的朋友不吝指教


fld.getValue()得到的是Date类型的,

你要得到2009-07-30有两种方式:

1. fld.getValue().format('Y-m-d')
2.fld.getRawValue()

2009年7月30日 17:09
0 0

fld.getValue() == null ? "商业":fld.getValue()

2009年7月30日 15:26

相关推荐

    laravel-admin Form表单多功能列表组件MultiList.rar

    在本文中,我们将深入探讨`laravel-admin`框架中的`Form`表单多功能列表组件`MultiList`。这个自定义插件是专为`laravel-admin`设计的,旨在提供一种创新的方式,将传统的`grid`表格样式与`form`表单控件相结合,...

    laravel-admin:form表单tab标签切换组件.rar

    该组件仿造laravel-admin form表单自带的tab组件。 区别在于laravel-admin自带的tab标签切换组件只能出现form表单的顶部所有的输入只能在tab标签内; 而该组件允许tab标签切换在form表单的任何位置,与代码顺序相关...

    基于antd4二次封装的form组件

    本话题聚焦于“基于antd4二次封装的form组件”,这通常意味着开发者为了满足特定项目需求,对antd提供的Form组件进行了功能扩展或定制。 Form组件在antd中扮演着数据收集与验证的重要角色,它与Input、Select等控件...

    EXT.form组件

    3. `combo`:`Ext.form.ComboBox`是下拉列表框组件,允许用户在预设的选项中进行选择,同时可以提供搜索功能以便快速定位选项。 4. `datefield`:`Ext.form.DateField`是日期选择组件,用户可以通过日历控件选择...

    antd Form组件方法getFieldsValue获取自定义组件的值操作

    补充知识:Ant Design Pro,用setFieldsValue方法,给嵌套到Form表单中的DatePicker或RangePicker组件设置默认值 其实用setFieldsValue或者获取setState方法都可以设置DatePicker的默认值。 但是关键点在于,引用...

    Laravel-admin表单Form多级下拉复选框组件multiCheckbox(优化版).rar

    表单(Form)是 Laravel-admin 中的核心部分,它支持多种表单元素,包括文本输入、下拉选择、复选框等,以及自定义组件。 `multiCheckbox` 组件是一个专为 Laravel-admin 设计的多级下拉复选框,适用于处理层级结构...

    一个基于C#实现的通用Win-Form/Web-Form 组件类库及程序例子代码

    该资源是一个针对C#开发者的实用工具包,旨在提供一套通用的Win-Form和Web-Form界面组件。通过使用此类库,开发者可以为桌面应用(Win-Form)和Web应用(Web-Form)创建一致的用户体验,无论是在客户端还是在服务器...

    el-table,el-form在vue中封装组件化,含操作按钮和插槽.pdf

    在给定的文件中,展示了如何利用Element UI库来封装`el-table`和`el-form`组件,这两个组件在管理系统的界面中非常常见,特别是用于数据展示和表单提交。 首先,我们关注`el-form`组件的封装。`el-form`用于创建...

    form表单复选框取值

    在本例中,请求的URL是`TeamMg_deleteContactManagement.action`,数据类型设置为`json`,并且传递了`form`变量作为请求数据。 ```javascript $.ajax({ type: "POST", url: "TeamMg_deleteContactManagement....

    C++Builder 6常用组件的使用

    本文将详细介绍C++Builder 6 中一些常用的组件及其使用方法,包括Form窗体组件、常用组件、公用对话框组件、Timer组件以及组件的焦点事件和使用技巧。 #### Form窗体组件 **1.1 生成Form窗体** C++Builder 提供了...

    基于elementui的form表单实现的一个高拓展性的表格布局组件

    本文将深入探讨如何利用Element UI的Form表单组件构建一个高拓展性的表格布局组件。 首先,Element UI的Form组件提供了强大的表单处理能力,它支持各种表单元素如Input、Select、Checkbox、Radio等,并且具有表单...

    laravel-admin:form表单树状复选框组件(CheckboxTree).rar

    为了在表单中使用这个组件,你需要在 Laravel-Admin 的 Form 中调用 `checkboxTree` 方法,传入需要展示的数据源和配置项。例如: ```php $form->checkboxTree('permissions', '权限分配')->options($...

    proForm高级组件ppt

    `proForm`组件支持远程搜索功能,这是通过设置`options`中的`filterable`、`remote`以及`remoteMethod`属性实现的。`remoteMethod`接受三个参数:`query`(当前输入框的值)、`form`(表单实例)和`callback`(返回...

    多文件上传 dojo组件 dojox.form.FileUploader

    标题中的“多文件上传 dojo组件 dojox.form.FileUploader”是指使用Dojo JavaScript库中的dojox.form.FileUploader组件来实现网页上的多文件上传功能。Dojo是一个强大的JavaScript框架,它提供了丰富的UI组件和工具...

    使用form-create动态生成vue自定义组件和嵌套表单组件

    使用form-create动态生成vue自定义组件和嵌套表单组件 [github]| [说明文档] maker.create 通过建立一个虚拟 DOM的方式生成自定义组件 生成 Maker let rule = [ formCreate.maker.create('i-button').props({ ...

    文本框设置默认值、验证以及提交

    "文本框设置默认值、验证以及提交"这一主题涵盖了三个关键环节:为文本框预填充默认值,实现输入验证,以及处理表单提交。这些功能在jQuery库的帮助下可以轻松实现,jQuery是一个广泛使用的JavaScript库,简化了DOM...

    easybpm-form新增日期时间组件操作文档-pig.pdf

    在easyBPM表单设计器中,新增一个日期时间组件涉及到对组件的注册、配置属性的设置、前端组件描述的编写以及对表单设计的整体把握。用户需要熟悉表单设计器的各个部分,了解如何通过编程接口和前端描述来定制组件,...

    form-generator表单设计器api文档.docx

    - **自定义属性**:`__config__`和`__slot__`是`form-generator`自定义的属性,用于描述组件的配置和插槽信息。 - **插槽解析**:通过自定义的插槽解析文件(如`el-button.js`)来实现组件内容的动态展示。 - **组件...

    laravel-form-components:一组Blade组件,可使用Tailwind CSS(v1.0和v2.0)快速构建表单。支持验证,模型绑定,默认值,转换,Laravel Livewire,包括默认的供应商样式和完全可定制!

    Laravel表单组件 一组Blade组件,可使用 , 和快速构建表单。 支持验证,模型绑定,默认值,转换,包括默认的供应商样式和完全可定制的!... :eyes: 该软件包有一个Pro版本正在开发中:检出 ! :television: 想要...

Global site tag (gtag.js) - Google Analytics