ExtJS学习心得(三)
2008-02-28 09:45
423 查看
这里主要讲一下表单的应用:)
一、美化表单:
ExtJS自带的CSS效果可以让表单非常漂亮,在使用前先将ext-all.css文件导入页面,然后加入以下代码
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-ml">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-mr">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-mc">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<form id="regform">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<fieldset align="middle">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<legend><font class="btitle" color="#ff7300"><strong class="style7">帐号信息</strong></font></legend>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<table width="100%" align="center">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: right">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
会员Email:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: left" width="300">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<input type="text" id="UserEmail" name="UserEmail" /> <span id="msg" style="display: none"></span>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: right">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
登录密码:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: left">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<input id="UserPwd" name="UserPwd" type="password" />
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: right">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
密码确认:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: left">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<input id="UserPwd1" name="UserPwd1" type="password" />
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</table>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</fieldset>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div id="regbutton">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</form>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-bl">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-br">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-bc">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
二、绑定及验证表单:
以上只是将表单显示出来了,如需对表单域操作,还需要在JS里写相关的代码进行绑定
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
var fm2 = new Ext.form.BasicForm('regform');
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//加入验证框
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
fm2.add(new Ext.form.TextField(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
allowBlank: false,//不能为空
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
blankText:'EMAIL不能为空,且请确保有效地址!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//regex:re,//正则验证
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
invalidText:'EMAIL格式不正确或此EMAIL已被注册!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
validator:checkEmail//自定义验证函数
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}).applyTo(userEmail));
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
fm2.add(new Ext.form.TextField(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
allowBlank: false,//不能为空
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
blankText:'密码不能为空!'
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}).applyTo(Ext.get('UserPwd')));
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
fm2.add(new Ext.form.TextField(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
allowBlank: false,//不能为空
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
blankText:'密码不能为空!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
invalidText:'2次密码不相同!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
validator:vailda//自定义验证函数
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}).applyTo(Ext.get('UserPwd1')));
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
fm2.add(new Ext.form.TextField(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
allowBlank: false,//不能为空
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
blankText:'会员名称不能为空!'
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}).applyTo('CustomerName'));
ExtJS能对表单进行非常灵活的验证,上面是将表单的字段绑定起来,同时添加了相应的验证,并且也支持自定义函数验证,以下是对比2个输入框密码是否相同的自定义函数
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
/**//**
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
* 验证密码是否相同
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
*/
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
function vailda()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(Ext.get('UserPwd').dom.value==Ext.get('UserPwd1').dom.value)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return true;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
else
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return false;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
如果想让效果更好,还要在绑定代码里加多一句
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Ext.QuickTips.init();
加入此代码后,表单验证的错误消息会在鼠标放到相应字段时显示出来
三、表单提交:
先将提交按钮进行注册,然后再对此按钮进行操作
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//注册按钮
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Ext.get('regform').un("submit", fm2.onSubmit, fm2);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
var regButton = new Ext.Button('regbutton',
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
text: ' 注 册 ',
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
handler: function()
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
if (fm2.isValid())
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
Ext.Msg.show(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
title:'再确认一下',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
modal : false,
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
msg: '您确定资料正确吗?',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
buttons: Ext.Msg.OKCANCEL,
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
fn: function(btn, text)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
if (btn == 'ok')
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
fm2.submit(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
url: 'Register.htm',
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
params:
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
oper: 'submit'
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
},
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
msgethod: 'POST',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
waitMsg:'正在提交,请稍等
![](http://www.cnblogs.com/Images/dot.gif)
'
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
});
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
},
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
animEl: 'regbutton'
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}).getDialog().moveTo(200, 100);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
} else
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
Ext.Msg.show(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
title:'信息',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
msg: '请填写完整后再提交!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
modal : false,
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
buttons: Ext.Msg.OK
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}).getDialog().moveTo(200, 100);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
});
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
fm2.on(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//提交之前
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
beforeaction: function(form, action)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
regButton.disable();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
},
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//提交完成后
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
actioncomplete: function(form, action)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
if(action.type == 'submit')
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
regButton.enable();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
if(action.result.success)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Cookies.set('Allcard_userName', Ext.get('CustomerName').dom.value);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
Ext.Msg.show(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
title:'成功',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
msg: '恭喜,您已注册成功!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
modal : false,
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
fn: showResult,
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
buttons: Ext.Msg.OK
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}).getDialog().moveTo(200, 100);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
else
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
Ext.Msg.show(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
title:'错误',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
msg: '抱歉!您注册失败,请联系管理员!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
modal : false,
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
buttons: Ext.Msg.OK
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}).getDialog().moveTo(200, 100);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
},
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//提交失败后
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
actionfailed: function(form, action)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
regButton.enable();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
});
其中waitMsg即指定提交时loading的文字,animEl则绑定提交按钮的特效,在fm2.on里就写表单提交前后的相应事件,表单的事件基本上就写完了,剩下的就是后台处理方法,我上一篇已有说明,在此就不再说了
一、美化表单:
ExtJS自带的CSS效果可以让表单非常漂亮,在使用前先将ext-all.css文件导入页面,然后加入以下代码
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-ml">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-mr">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-mc">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<form id="regform">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<fieldset align="middle">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<legend><font class="btitle" color="#ff7300"><strong class="style7">帐号信息</strong></font></legend>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<table width="100%" align="center">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: right">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
会员Email:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: left" width="300">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<input type="text" id="UserEmail" name="UserEmail" /> <span id="msg" style="display: none"></span>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: right">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
登录密码:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: left">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<input id="UserPwd" name="UserPwd" type="password" />
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: right">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
密码确认:
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<td style="text-align: left">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<input id="UserPwd1" name="UserPwd1" type="password" />
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</td>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</tr>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</table>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</fieldset>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div id="regbutton">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</form>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-bl">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-br">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
<div class="x-box-bc">
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
</div>
二、绑定及验证表单:
以上只是将表单显示出来了,如需对表单域操作,还需要在JS里写相关的代码进行绑定
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
var fm2 = new Ext.form.BasicForm('regform');
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//加入验证框
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
fm2.add(new Ext.form.TextField(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
allowBlank: false,//不能为空
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
blankText:'EMAIL不能为空,且请确保有效地址!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//regex:re,//正则验证
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
invalidText:'EMAIL格式不正确或此EMAIL已被注册!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
validator:checkEmail//自定义验证函数
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}).applyTo(userEmail));
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
fm2.add(new Ext.form.TextField(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
allowBlank: false,//不能为空
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
blankText:'密码不能为空!'
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}).applyTo(Ext.get('UserPwd')));
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
fm2.add(new Ext.form.TextField(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
allowBlank: false,//不能为空
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
blankText:'密码不能为空!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
invalidText:'2次密码不相同!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
validator:vailda//自定义验证函数
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}).applyTo(Ext.get('UserPwd1')));
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
fm2.add(new Ext.form.TextField(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
allowBlank: false,//不能为空
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
blankText:'会员名称不能为空!'
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}).applyTo('CustomerName'));
ExtJS能对表单进行非常灵活的验证,上面是将表单的字段绑定起来,同时添加了相应的验证,并且也支持自定义函数验证,以下是对比2个输入框密码是否相同的自定义函数
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
/**//**
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
* 验证密码是否相同
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
*/
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
function vailda()
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
if(Ext.get('UserPwd').dom.value==Ext.get('UserPwd1').dom.value)
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return true;
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
else
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
return false;
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
}
如果想让效果更好,还要在绑定代码里加多一句
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Ext.QuickTips.init();
加入此代码后,表单验证的错误消息会在鼠标放到相应字段时显示出来
三、表单提交:
先将提交按钮进行注册,然后再对此按钮进行操作
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
//注册按钮
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Ext.get('regform').un("submit", fm2.onSubmit, fm2);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
var regButton = new Ext.Button('regbutton',
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
text: ' 注 册 ',
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
handler: function()
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
if (fm2.isValid())
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
Ext.Msg.show(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
title:'再确认一下',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
modal : false,
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
msg: '您确定资料正确吗?',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
buttons: Ext.Msg.OKCANCEL,
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
fn: function(btn, text)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
if (btn == 'ok')
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
fm2.submit(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
url: 'Register.htm',
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
params:
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
oper: 'submit'
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
},
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
msgethod: 'POST',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
waitMsg:'正在提交,请稍等
![](http://www.cnblogs.com/Images/dot.gif)
'
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
});
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
},
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
animEl: 'regbutton'
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}).getDialog().moveTo(200, 100);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
} else
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
Ext.Msg.show(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
title:'信息',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
msg: '请填写完整后再提交!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
modal : false,
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
buttons: Ext.Msg.OK
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}).getDialog().moveTo(200, 100);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
});
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)
fm2.on(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//提交之前
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
beforeaction: function(form, action)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
regButton.disable();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
},
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//提交完成后
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
actioncomplete: function(form, action)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
if(action.type == 'submit')
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
regButton.enable();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
if(action.result.success)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
Cookies.set('Allcard_userName', Ext.get('CustomerName').dom.value);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
Ext.Msg.show(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
title:'成功',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
msg: '恭喜,您已注册成功!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
modal : false,
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
fn: showResult,
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
buttons: Ext.Msg.OK
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}).getDialog().moveTo(200, 100);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
else
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
Ext.Msg.show(
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
title:'错误',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
msg: '抱歉!您注册失败,请联系管理员!',
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
modal : false,
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
buttons: Ext.Msg.OK
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}).getDialog().moveTo(200, 100);
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
},
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
//提交失败后
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)
actionfailed: function(form, action)
![](http://www.cnblogs.com/Images/dot.gif)
{
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif)
regButton.enable();
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif)
}
![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)
});
其中waitMsg即指定提交时loading的文字,animEl则绑定提交按钮的特效,在fm2.on里就写表单提交前后的相应事件,表单的事件基本上就写完了,剩下的就是后台处理方法,我上一篇已有说明,在此就不再说了
相关文章推荐
- Extjs学习心得一
- ExtJS学习心得(三)
- Extjs学习心得
- ExtJS 学习心得(一)
- ExtJS学习心得(二)
- ExtJS学习心得(验证规则)
- 初学者在.NET环境下的学习extjs拼写代码的心得
- ExtJS 学习心得(一)
- ExtJS 学习心得(一)
- ExtJs学习心得
- ExtJS学习心得(二)
- ExtJS 学习心得(一)
- 如下主要记录在学习使用EXTJS结合WCF的时候的一些心得
- ExtJS学习心得(二)
- ExtJS学习心得(三)
- ExtJS学习心得(二)
- 开源项目live555学习心得
- MYSQL学习心得(3) --浮点数与定点数
- 形式语言与自动机学习心得
- httpclient的一些学习心得