日期:2014-05-16  浏览次数:20381 次

ExtJs4.0 form.getValues()获取值的问题

如下例代码中,提交发送异步请求时,或表单提交进行数据保存时,利用form.getValues()获取值时,有时会获取不到对应的textfield,combobox,datefield等字段的值。(有的字段能获取到""空值,能形成key:""键值对;有的字段值为空时,后台就接收不到值为空的键值对)原因在于getValues()不是通过遍历每个对象来获取值的,而是遍历html节点来获取对象值的。简单的来说是组件的问题。

解决办法可以用改变form布局的方式,或提交时通过findField找到对应的值,设置到对应的隐藏字段中提交。

?

var request = Ext.Ajax.request({
??????????? method: 'post',
??????????? url : getRootPath() + '/xxxx.do?method=savexxxx',
??????????? params: {
?????????????????? cplan : Ext.encode(form.getValues())??????????

??????????? },?
????????????success: function(response){?
????????????????? var data = Ext.JSON.decode(response.responseText);?
????????????????? if(data.res == true){
????????????????????? ?Ext.Msg.alert("操作结果信息", data.msg);?
????????????????? }else{?
???????????????????????Ext.Msg.alert("操作结果信息", data.msg);?
????????????????? }?
????????????},?
????????????failure: function(response){
??????????????? Ext.Msg.alert("错误", "无法访问后台");?
????????????}?
});

?