Javascript 提交表单值与我输入的值不同

Javascript 提交表单值与我输入的值不同,javascript,forms,extjs,Javascript,Forms,Extjs,我收到json中的以下值: Alarm: "1" Categories: ["P"] Users: ["Alexander","Moritz"] 并将其加载到具有以下内容的表单中: form.load({ method:"GET", url:'GetSimpleProtocol.json' }) 表单字段包括: { type:'checkbox', name:'Alarm', boxLabel: 'Alarmieren', inputValue

我收到json中的以下值:

Alarm: "1"
Categories: ["P"]
Users: ["Alexander","Moritz"]
并将其加载到具有以下内容的表单中:

form.load({
    method:"GET",
    url:'GetSimpleProtocol.json'
})
表单字段包括:

{
    type:'checkbox',
    name:'Alarm',
    boxLabel: 'Alarmieren',
    inputValue: '1'
},{
    xtype: 'combobox',
    fieldLabel: 'Kategorie',
    name: 'Categories',
    store:['P'],
    multiSelect: true,
},{
    xtype: 'textareafield',
    fieldLabel: 'Label',
    name: 'Users'
}
当我直接提交时:

form.submit({
    url:'SaveSimpleProtocol.json'
})
提交帖子中的字段值与第一个文件中的值相反:

Alarm: true
Categories: [{field1:"P"}]
Users: "Alexander,Moritz"

在提交之前,我可以告诉我的组件或表单将这些值更改回所需格式吗?

组合框提交值是由代码问题引起的。只有在将值加载到表单中后,组合框才填充了选择项。如果你以前做过,它就像一个符咒

另外两个问题,我通过推导新的组件来解决

获取并提交行数组的ExtJS TextArea:

Ext.define('MyApp.ux.ArrayTextArea', {
    extend:'Ext.form.field.TextArea',
    alias: ['widget.arraytextareafield'],
    valueToRaw:function(value) {
        if(Ext.isArray(value)) return value.join("\n");
        return this.callParent([value]);
    },
    rawToValue:function(value) {
        if(Ext.isString(value)) {
            if(value.length==0) return [];
            return value.split("\n");
        }
        return this.callParent([value]);
    }
});
返回inputValue/uncheckedValue而不是true/false的ExtJS复选框:

Ext.define('TimeFleX.ux.StringCheckbox', {
    extend:'Ext.form.field.Checkbox',
    alias: ['widget.stringcheckbox'],
    getValue:function() {
        if(this.checked) return this.inputValue;
        return this.uncheckedValue;
    }
});