Javascript 提交表单值与我输入的值不同
我收到json中的以下值: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
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;
}
});