遇到问题如下:
设置emptyText后,使用
form.getForm().submit({
url : '/myAction.do?method=save',
})
就会把emptyText内容提交到后台
方法如下:
3.0一下版本的Ext设置方式:
在有效性检验时需要对表单元素的提交的数据和该表单元素的emptyText比较,如果相同,说明用户没有输入任何文本;如果不同并且非空,说明是用户填写的内容。
var thisForm = updateEnForm.getForm(); if (thisForm.isValid()) { var submitValues = thisForm.getValues(); // 修正emptyText造成的提示语句当做value值传递到后台 // 如果是emptyText就改为'' for (var param in submitValues) { if (thisForm.findField(param).emptyText == submitValues[param]) { submitValues[param] = ''; } } updateEnForm.getForm().doAction('submit', { url : 'doEnterprise.base?doType=updateEn', method : 'POST', params:submitValues, waitMsg:"保存中,请稍后...", success : function(form,action){ Ext.Msg.alert('成功', "修改单位信息成功!"); win_updateEn.hide(); enStore.load({params:{start:0, limit:<%=Configuration.getConfig().getString("pageSize","40")%>}}); }, failure : function(form,action) { Ext.Msg.alert('失败', "保存节点信息失败!"); } }); }
3.0以上版本的Extjs:只需在submit时加入一句话即可:submitEmptyText:false
var thisForm = updateEnForm.getForm(); if (thisForm.isValid()) { updateEnForm.getForm().doAction('submit', { url : 'doEnterprise.base?doType=updateEn', method : 'POST', submitEmptyText:false, waitMsg:"保存中,请稍后...", success : function(form,action){ Ext.Msg.alert('成功', "修改单位信息成功!"); win_updateEn.hide(); enStore.load({params:{start:0, limit:<%=Configuration.getConfig().getString("pageSize","40")%>}}); }, failure : function(form,action) { Ext.Msg.alert('失败', "保存节点信息失败!"); } }); }