EXTJS Form提交问题

不可以提交代码varfpanel=newExt.FormPanel({renderTo:Ext.getBody(),layout:'border',items:[{tit... 不可以提交代码
var fpanel = new Ext.FormPanel({
renderTo:Ext.getBody(),
layout:'border',
items:[{
title:'用户登录',
draggable : false,
renderTo:'loginDiv',
monitorResize: true,
width:'300px',
height:'140px',
frame:true,
items:[
{
xtype:'textfield',
fieldLabel:'用户名',
labelAlign:'right',
name:'username',
labelWidth:60,
width:280,
allowBlank:false
}
],
buttons:[
{
text:'登录',
handler:function(){
this.up("form").getForm().submit({
url:'a.jsp',
success:function(f,a){
Ext.Msg.alert('Success','It worked');
Ext.Msg.alert('操作',a.result.msg);
},
failure:function(f,a){
alert(f.url);
Ext.Msg.alert('Warning','Error');
}
});
}
}
]
}]
});
展开
 我来答
xiii130
2013-01-29 · 知道合伙人软件行家
xiii130
知道合伙人软件行家
采纳数:817 获赞数:2867
爱好编程,在工作中积累了比较丰富的经验。愿与大家共同进步。

向TA提问 私信TA
展开全部
建议使用extjs 4.0
估计问题是你的代码没有取到表单这个元素
虽然官网例子里面用的this.up("form").getForm(),但是我自己的也没有生效,不知具体原因

解决的方法,我是把提交的function独立出来
你试试如下代码,亲测有效

//这里只给出一个表单元素,其余的自己加
Form = Ext.create('Ext.form.Panel',{
border: 0,
width: 270,
bodyPadding: 15,
fieldDefaults: {
labelAlign: 'left',
labelWidth: 66,
anchor: '100%'
},
items: [{
xtype: 'textfield',
name: 'xxx',
fieldLabel: 'xxx'
}]
});

//提交
function submitForm(){
if(Form.getForm().isValid()){
Form.getForm().submit({
waitTitle: '请稍候',
waitMsg: '正在执行操作...',
url: 'xxx.php',
method: 'POST',
success: function(form, action){
//正确提示,返回的json必须要有success项
},
failure: function(form,action){
//错误提示
}
});
}
}

//事件监听
handler: submitForm
追问

经测试发现:代码 allowBlank : false 影响表单的提交

1.去掉allowBlank : false后,可以看到数据提交信息:

 

2.加上allowBlank : false后,看不到数据提交信息了:   

   

追答
很抱歉,我也不清楚你的代码问题,我这里也有空验证,甚至是则正验证都没出现此类问题,这是我的代码
items: [{
xtype: 'textfield',
name: 'xxx',
fieldLabel: 'xxx',
allowBlank: false,
blankText: '不能为空',
regex: /^([A-Z]|[a-z]|[0-9]){1,32}$/,
regexText: '不能包含任何符号和汉字, 最大长度为32'
}]
希望对你有所帮助
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式