operateEdit = function() {
this.name = new Ext.form.TextField({
id : "name",
columnWidth : 0.5,
minWidth : 75,
fieldLabel : '账号',
text : '账号',
style : 'height:19px;',
anchor : '90%',
allowBlank : false,
blankText : '账号不能为空!',
scope : this,
listeners : {
"change" : function() {
Ext.Ajax.request({
url : "user_checkName.action",
params : {
"name" : Ext.getCmp("name").getValue()
},
success : function(response, action) {
var result = Ext
.decode(response.responseText);
if (result.success == false) {
Ext.Msg.alert("提示", "此用户名已经存在!");
}
},
failer : function(request, action) {
Ext.Msg.alert("提示", "出现错误!")
}
})
}
}
});
this.realName = new Ext.form.TextField({
id : 'realName',
columnWidth : 0.5,
minWidth : 75,
fieldLabel : '姓名',
text : '姓名',
style : 'height:19px;',
anchor : '90%',
scope : this
});
this.pwd = new Ext.form.TextField({
id : 'loginPassword',
inputType : "password",
columnWidth : 0.5,
minWidth : 75,
fieldLabel : '密码',
text : '密码',
style : 'height:19px;',
anchor : '90%',
allowBlank : false,
blankText : '密码不能为空!',
scope : this,
listeners : {
"change" : function() {
Ext.getCmp("repass").show();
Ext.getCmp("rePwd").allowBlank=false;
Ext.getCmp("rePwd").blankText="确认密码不能为空!";
}
}
});
this.telephone = new Ext.form.TextField({
id : 'mobile',
columnWidth : 0.5,
minWidth : 75,
fieldLabel : '手机',
text : '手机',
style : 'height:19px;',
anchor : '90%',
scope : this,
regex : /(^[0-9]*$)/,// 使用正则表达式进行验证
regexText : "手机号码只能是数字!"
});
this.email = new Ext.form.TextField({
id : 'email1',
columnWidth : 0.5,
minWidth : 75,
fieldLabel : '邮件',
text : '邮件',
style : 'height:19px;',
anchor : '90%',
scope : this,
regex : /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/,//进行验证
regexText : "邮箱格式不正确!"// 错误提示信息,默认值我就不说了
});
this.remark = new Ext.form.TextArea({
id : 'memo',
columnWidth : 1,
minWidth : 75,
fieldLabel : '备注',
text : '备注',
anchor : '95%',
scope : this
});
this.id = new Ext.form.TextField({
id : "id",
hideLabel: true,
hidden : true,
style : 'display:none;',
value : id
});
// 两次输入的密码是否一致
Ext.apply(Ext.form.VTypes,{
password : function(val, field) {
if (field.confirmTo) {
var pwd = Ext.get(field.confirmTo);
return (val == pwd.getValue());
}
return true
}
});
this.submit = new Ext.Button({
text : '保存',
scope : this,
handler : function() {
if (formEditPanel.form.isValid()) {
// 获取表单对象
var submitForm = formEditPanel.getForm();
submitForm.doAction('submit', {
url : 'user_AM.action',
method : 'POST',
params : submitForm.getValues(),// 获取表单数据</SPAN>
success : function(form, action) {
var isSuc = action.result.success;
if (isSuc) {
// 提示用户登陆成功
Ext.getCmp("userGrid").store
.reload();
}
},
failure : function(form, action) {
Ext.Msg.alert("提示", action.result.msg);
}
});
editWin.close();
}
}
});
this.exit = new Ext.Button({
text : '取消',
scope : this,
handler : function() {
editWin.close();
}
});
// 定义一个编辑的formPanel
var formEditPanel = new Ext.FormPanel({
id : "editFormPanel",
frame : true,
plain : true,
labelWidth : 60,
defaults : // 容器中组件默认统一配置选项
{
allowBlank : false
},
items : [{
layout : 'column',
border : false,
items : [{
columnWidth : .50,
layout : 'form',
border : false,
items : [this.name, this.pwd, this.telephone]
},
{
columnWidth : .50,
layout : 'form',
border : false,
items : [this.realName, {
xtype : 'fieldset',
style : ' margin-bottom:0px;padding:0px;',
border : false,
id : 'repass',
hidden : true,
items : [{
xtype:"textfield",
id : 'rePwd',
inputType : "password",
columnWidth : 0.5,
minWidth : 75,
fieldLabel : '确认密码',
style : 'height:19px;',
anchor : '90%',
confirmTo : "loginPassword",
vtype : "password",
vtypeText : "两次密码不一致,请重新输入!"
}]
}, this.email]
}, {
columnWidth : 1,
layout : 'form',
border : false,
items : [this.remark, this.id]
}
]
}]
});
// 定义一个编辑的window
var editWin = new Ext.Window({
id : "editWin",
title : "编辑账号",
width : 600,
modal : true,
closeAction : 'close',
autoHeight : true,
border : false,
resizable : false,
buttonAlign : 'center',
plain : true,
items : [formEditPanel],
buttons : [this.submit, this.exit]
});
this.showEditWin = function() {
if (loadData()) {
editWin.show();
}
}
function loadData() {
var rows = Ext.getCmp("userGrid").selModel.getSelections();
if (rows.length < 1) {
Ext.Msg.alert("提示", "请选择要编辑的账号");
} else {
formEditPanel.form.doAction("load", {
url : "user_Load.action",
params : {
"id" : rows[0].json.id
},
success : function(form, action) {
Ext.encode(action.result);
},
failer : function(form, action) {
Ext.MessageBox.alert("提示", "加载数据失败!");
}
});
return true;
}
return false;
}
}
Ext.onReady(function() {
// 【编辑】按钮触发的事件
Ext.get("edit").on("click", editWin);
function editWin() {
var edit = new operateEdit();
edit.showEditWin();
}
});
//当window使用的是close关闭窗体时,使用如上的方法能够解决第2次点击弹出窗体时报为null的错误