Extjs form.submit()调用更改字段值

flvlnr44  于 2022-11-04  发布在  其他
关注(0)|答案(2)|浏览(138)

我可以在提交之前看到字段的值:

var itemsForm = '';
function mostraItems(item, index, length) { itemsForm += item.id + ':' + item.name + ':' + item.value + ':' + index + '\n'; }
myForm.form.items.each(mostraItems);
alert (itemsForm);
myForm.form.submit({...

我遇到的问题是提交的值与调用form.submit()之前看到的值不同。其中一个字段是ComboBox:

var myCombo = new Ext.form.ComboBox({
    //autoWidth: true,
    width: 250,
    displayField: 'theFieldText',
    editable: false,
    emptyText: 'Select something ...',
    fieldLabel: 'Some text',
    listeners: { 'select': { fn: theOnSelect, scope: this} },
    mode: 'local',
    selectOnFocus: true,
    store: theStore,
    triggerAction: 'all',
    typeAhead: true,
    valueField: 'theFieldValue',
    name: 'fieldName'
});

在请求中要输入的是valueField和displayField的和。假设value字段包含“1”,displayField包含“一些文本”,那么在请求中要输入的是“1(一些文本)”,而不仅仅是值“1”。
在调用form.submit()之后或期间发生了一些事情,但我找不到它是什么。
使用Ext 2.3

uelo1irk

uelo1irk1#

在表单提交调用期间没有发生任何异常。
首先,在提交表单之前检查表单的值(但不是现在的方法)。

myForm.getValues();

提供将提交的键/值对。
因此,在控制台中键入

Ext.getCmp('your-form-id').getForm().getValues();

或放入代码中

console.log(myForm.getValues());

而不是alert(),并看到输出。然后,当您以标准方式提交表单时

myForm.submit({url: 'submit-url'})

你的价值观是不可能改变的。2你如何提交表单?

eni9jsuy

eni9jsuy2#

如Igor所述,您应始终使用form.getForm().getValues()来查看正在提交的值。
对于任何特定字段,如果您对数据的格式设置、显示或计算方式不满意,您可以始终覆盖该字段的getSubmitData方法。

相关问题