从CSDN上找了一个资料关于EXTJS+struts2的,在运行一个注册用户界面时出错,报得是this.fp.form为空或不是对象,百思不得其解,请各位高人帮着看看
RegWin = Ext.extend(Ext.Window, {
id:'regwin',
title : '新用户注册',
width : 265,
height : 260,
closable : false,
modal : true,
defaults : {
border : false
},
buttonAlign : 'center',
createFormPanel : function() {
return new Ext.form.FormPanel({
bodyStyle : 'padding-top:6px',
defaultType : 'textfield',
labelAlign : 'right',
labelWidth : 55,
labelPad : 0,
frame : true,
defaults : {
allowBlank : false,
width : 158,
selectOnFocus : true
},
items : [{
id : 'nameTemp',
xtype : 'hidden',
value : ''
}, {
id : 'regable',
fieldLabel: '',
xtype : 'hidden',
value : true
}, {
id : 'userName',
name : 'userName',
fieldLabel : '帐号',
blankText : '帐号不能为空',
validator : function() {
this.fp.form.findField("password").getValue();
var nameTemp = Ext.getCmp('nameTemp').value;
var name = Ext.getCmp('userName').value;
alert(name);
if (nameTemp != name) {
Ext.getCmp('nameTemp').value = name;
nameTemp = name;
Ext.Ajax.request({
url:'check.action',
method : 'POST',
params : {
userName : nameTemp
},
success : function(responseObject) {
var res = responseObject.responseText;
if (res == 'false') {
Ext.getCmp('regable').value = false ;
}
if (res == 'true') {
Ext.getCmp('regable').value = true;
}
}
});
}
return eval(Ext.getCmp('regable').value);
},
invalidText : '用户名已经被注册'
}, {
name : 'password',
fieldLabel : '密码',
blankText : '密码不能为空',
inputType : 'password'
}, {
name : 'RePassword',
fieldLabel : '确认密码',
blankText : '密码不能为空',
inputType : 'password'
}, {
name : 'email',
vtype : 'email',
fieldLabel : '电子邮件',
blankText : '邮件不能为空'
}, {
xtype : "textarea",
name : 'intro',
fieldLabel : '简介',
blankText : '简介不能为空'
}]
});
},
save : function() {
var pass1 = this.fp.form.findField("password").getValue();
var pass2 = this.fp.form.findField("RePassword").getValue();
if (pass1 != pass2) {
this.fp.form.findField("password").Invalid("两次输入的密码不同!");
this.fp.form.findField("password").focus(true);
return;
}

var userName = this.fp.form.findField("userName").getValue();
var password = this.fp.form.findField("password").getValue();
var email = this.fp.form.findField("email").getValue();
var introduction = this.fp.form.findField("intro").getValue();

this.fp.form.submit({
waitTitle : '请稍候',
waitMsg : '正在提交.....',
url : 'regUser.action',
method : 'POST',
params : {
userName : userName,
password : password,
email : email,
introduction : introduction
},
success : function(form, action) {
                  Ext.getCmp("regwin").close();
},
failure : function(form, action) {
form.findField("userName").focus(true);
}
});
},
initComponent : function() {
this.keys = {
key : Ext.EventObject.ENTER,
fn : this.save,
scope : this
};
RegWin.superclass.initComponent.call(this);
this.fp = this.createFormPanel();
this.add(this.fp);
this.addButton('提交', this.save, this);
this.addButton('取消', function() {
this.close();
}, this);
}
});