ExtJS学习心得(三)

这里主要讲一下表单的应用:)

一、美化表单:
ExtJS自带的CSS效果可以让表单非常漂亮,在使用前先将ext-all.css文件导入页面,然后加入以下代码

< div class ="x-box-ml" >
< div class ="x-box-mr" >
< div class ="x-box-mc" >
< form id ="regform" >
< fieldset align ="middle" >
< legend >< font class ="btitle" color ="#ff7300" >< strong class ="style7" > 帐号信息 </ strong ></ font ></ legend >
< table width ="100%" align ="center" >
< tr >
< td style ="text-align: right" >
会员Email:
</ td >
< td style ="text-align: left" width ="300" >
< input type ="text" id ="UserEmail" name ="UserEmail" /> < span id ="msg" style ="display: none" ></ span >
</ td >
</ tr >
< tr >
< td style ="text-align: right" >
登录密码:
</ td >
< td style ="text-align: left" >
< input id ="UserPwd" name ="UserPwd" type ="password" />
</ td >
</ tr >
< tr >
< td style ="text-align: right" >
密码确认:
</ td >
< td style ="text-align: left" >
< input id ="UserPwd1" name ="UserPwd1" type ="password" />
</ td >
</ tr >
</ table >
</ fieldset >
< div id ="regbutton" >
</ div >
</ form >
</ div >
</ div >
</ div >
< div class ="x-box-bl" >
< div class ="x-box-br" >
< div class ="x-box-bc" >
</ div >
</ div >
</ div >


二、绑定及验证表单:

以上只是将表单显示出来了,如需对表单域操作,还需要在JS里写相关的代码进行绑定

var fm2 = new Ext.form.BasicForm( ' regform ' );
// 加入验证框
fm2.add( new Ext.form.TextField( {
allowBlank:
false,//不能为空
blankText:'EMAIL不能为空,且请确保有效地址!',
//regex:re,//正则验证
invalidText:'EMAIL格式不正确或此EMAIL已被注册!',
validator:checkEmail
//自定义验证函数
}
).applyTo(userEmail));

fm2.add(
new Ext.form.TextField( {
allowBlank:
false,//不能为空
blankText:'密码不能为空!'
}
).applyTo(Ext.get( ' UserPwd ' )));

fm2.add(
new Ext.form.TextField( {
allowBlank:
false,//不能为空
blankText:'密码不能为空!',
invalidText:
'2次密码不相同!',
validator:vailda
//自定义验证函数
}
).applyTo(Ext.get( ' UserPwd1 ' )));

fm2.add(
new Ext.form.TextField( {
allowBlank:
false,//不能为空
blankText:'会员名称不能为空!'
}
).applyTo( ' CustomerName ' ));


ExtJS能对表单进行非常灵活的验证,上面是将表单的字段绑定起来,同时添加了相应的验证,并且也支持自定义函数验证,以下是对比2个输入框密码是否相同的自定义函数

/**/ /**
* 验证密码是否相同
*/

function vailda()
{
if(Ext.get('UserPwd').dom.value==Ext.get('UserPwd1').dom.value)
return true;
else
return false;
}


如果想让效果更好,还要在绑定代码里加多一句

Ext.QuickTips.init();


加入此代码后,表单验证的错误消息会在鼠标放到相应字段时显示出来

三、表单提交:

先将提交按钮进行注册,然后再对此按钮进行操作

// 注册按钮
Ext.get( ' regform ' ).un( " submit " , fm2.onSubmit, fm2);
var regButton = new Ext.Button( ' regbutton ' , {
text:
' 注 册 ',
handler:
function(){
if (fm2.isValid()) {
Ext.Msg.show(
{
title:
'再确认一下',
modal :
false,
msg:
'您确定资料正确吗?',
buttons: Ext.Msg.OKCANCEL,
fn:
function(btn, text){
if (btn == 'ok'){
fm2.submit(
{
url:
'Register.htm',
params:
{
oper:
'submit'
}
,
msgethod:
'POST',
waitMsg:
'正在提交,请稍等'
}
);
}

}
,
animEl:
'regbutton'
}
).getDialog().moveTo(200, 100);
}
else {
Ext.Msg.show(
{
title:
'信息',
msg:
'请填写完整后再提交!',
modal :
false,
buttons: Ext.Msg.OK
}
).getDialog().moveTo(200, 100);
}

}

}
);
fm2.on(
{
//提交之前
beforeaction: function(form, action){
regButton.disable();
}
,
//提交完成后
actioncomplete: function(form, action){
if(action.type == 'submit'){
regButton.enable();
}

if(action.result.success){
Cookies.set(
'Allcard_userName', Ext.get('CustomerName').dom.value);
Ext.Msg.show(
{
title:
'成功',
msg:
'恭喜,您已注册成功!',
modal :
false,
fn: showResult,
buttons: Ext.Msg.OK
}
).getDialog().moveTo(200, 100);
}

else{
Ext.Msg.show(
{
title:
'错误',
msg:
'抱歉!您注册失败,请联系管理员!',
modal :
false,
buttons: Ext.Msg.OK
}
).getDialog().moveTo(200, 100);
}

}
,
//提交失败后
actionfailed: function(form, action){
regButton.enable();
}

}
);


其中waitMsg即指定提交时loading的文字,animEl则绑定提交按钮的特效,在fm2.on里就写表单提交前后的相应事件,表单的事件基本上就写完了,剩下的就是后台处理方法,我上一篇已有说明,在此就不再说了 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值