我一直在扫描这个网站寻找解决方案,但问题仍然存在。我在表单中有两个日期选择器,他们应该在提交表单时提交日期,但是:
start= Ext.util.Format.date(Ext.getCmp('start').getValue(),'Ymd');
end= Ext.util.Format.date(Ext.getCmp('end').getValue(),'Ymd');
这些代码行在GET调用服务器时导致两个空字符串。我不明白为什么。您可以在下面找到datefields的代码:
{
xtype: 'datefield',
fieldLabel: 'Start date',
format: 'Ymd',
id:"start",
//altFormats: 'Ymd',
listeners: {
'change': function(me) {
alert(me.getSubmitValue());
}
}},
{
xtype: 'datefield',
fieldLabel: 'End date',
format: 'Ymd',
id: "end",
//altFormats: 'm/d/Y',
listeners: {
'change': function(me) {
alert(me.getSubmitValue());
}
}},
你是否在字段的定义下看到了两个监听器?他们完美地工作,我的意思是,当时提交的值实际上是我正在搜索的字符串,但我无法使用我向您展示的前两行代码。我甚至试着写:
getSubmitValue()
而不是:
getValue()
但结果并没有改变。 知道为什么吗?
答案 0 :(得分:1)
更改甚至带有默认参数,因此您不需要对datefield对象进行额外调用(即'this')。
`change( this, newValue, oldValue, eOpts )`
http://docs.sencha.com/extjs/4.2.2/#!/api/Ext.form.field.Field-event-change
只需快速说明,您应该将“name”属性添加到您的字段以利用extjs的getter和setter。尝试使用itemId(本地范围)而不是id(全局范围)。如果您有多个相同表单的实例,这将在以后为您节省一些麻烦。
答案 1 :(得分:0)
将配置 submitFormat 添加到您的字段中,如下所示:
{
xtype: 'datefield',
fieldLabel: 'Start date',
format: 'Ymd',
submitFormat: 'Ymd',
id:"start",
listeners: {
'change': function(me) {
alert(me.getSubmitValue());
}
}
},
{
xtype: 'datefield',
fieldLabel: 'End date',
format: 'Ymd',
submitFormat: 'Ymd',
id: "end",
listeners: {
'change': function(me) {
alert(me.getSubmitValue());
}
}
}