extjs form 获取值

场景:ExtJs4.0 form.getValues()获取值的有关问题

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("错误", "无法访问后台"); 
            } 
});