Extjs表單常見(jiàn)驗(yàn)證小結(jié)
更新時(shí)間:2014年03月07日 17:30:31 作者:
Extjs表單驗(yàn)證包括空驗(yàn)證、用vtype格式進(jìn)行簡(jiǎn)單的驗(yàn)證、高級(jí)自定義密碼驗(yàn)證、使用正則表達(dá)式驗(yàn)證等等
復(fù)制代碼 代碼如下:
//放在onReady的function(){}中
Ext.QuickTips.init(); //為組件提供提示信息功能,form的主要提示信息就是客戶端驗(yàn)證的錯(cuò)誤信息。
Ext.form.Field.prototype.msgTarget='side'; //提示的方式,枚舉值為:
qtip-當(dāng)鼠標(biāo)移動(dòng)到控件上面時(shí)顯示提示;
title-在瀏覽器的標(biāo)題顯示,但是測(cè)試結(jié)果是和qtip一樣的;
under-在控件的底下顯示錯(cuò)誤提示;
side-在控件右邊顯示一個(gè)錯(cuò)誤圖標(biāo),鼠標(biāo)指向圖標(biāo)時(shí)顯示錯(cuò)誤提示. 默認(rèn)值;
id-[element id]錯(cuò)誤提示顯示在指定id的HTML元件中
1.一個(gè)最簡(jiǎn)單的例子:空驗(yàn)證
復(fù)制代碼 代碼如下:
//空驗(yàn)證的兩個(gè)參數(shù)
allowBlank:false//false則不能為空,默認(rèn)為true
blankText:string//當(dāng)為空時(shí)的錯(cuò)誤提示信息
js代碼為:
復(fù)制代碼 代碼如下:
var form1 = new Ext.form.FormPanel({
width:350,
renderTo:"form1",
title:"FormPanel",
defaults:{xtype:"textfield",inputType:"password"},
items:[
{fieldLabel:"不能為空",
allowBlank:false, //不允許為空
blankText:"不能為空", //錯(cuò)誤提示信息,默認(rèn)為T(mén)his field is required!
id:"blanktest",
}
]
});
2.用vtype格式進(jìn)行簡(jiǎn)單的驗(yàn)證。
在此舉郵件驗(yàn)證的例子,重寫(xiě)上面代碼的items配置:
復(fù)制代碼 代碼如下:
items:[
{fieldLabel:"不能為空",
vtype:"email",//email格式驗(yàn)證
vtypeText:"不是有效的郵箱地址",//錯(cuò)誤提示信息,默認(rèn)值我就不說(shuō)了
id:"blanktest",
anchor:"90%"
}
你可以修改上面的vtype為以下的幾種extjs的vtype默認(rèn)支持的驗(yàn)證:
//form驗(yàn)證中vtype的默認(rèn)支持類型
1.alpha //只能輸入字母,無(wú)法輸入其他(如數(shù)字,特殊符號(hào)等)
2.alphanum//只能輸入字母和數(shù)字,無(wú)法輸入其他
3.email//email驗(yàn)證,要求的格式是""
4.url//url格式驗(yàn)證,要求的格式是http://www.baidu.com
3.高級(jí)自定義密碼驗(yàn)證
前面的驗(yàn)證都是extjs已經(jīng)提供的,我們也可以自定義驗(yàn)證函數(shù)。
復(fù)制代碼 代碼如下:
//先用Ext.apply方法添加自定義的password驗(yàn)證函數(shù)(也可以取其他的名字)
Ext.apply(Ext.form.VTypes,{
password:function(val,field){//val指這里的文本框值,field指這個(gè)文本框組件,大家要明白這個(gè)意思
if(field.confirmTo){//confirmTo是我們自定義的配置參數(shù),一般用來(lái)保存另外的組件的id值
var pwd=Ext.get(field.confirmTo);//取得confirmTo的那個(gè)id的值
return (val==pwd.getValue());
}
return true;
}
});
//配置items參數(shù)
items:[{fieldLabel:"密碼",
id:"pass1",
},{
fieldLabel:"確認(rèn)密碼",
id:"pass2",
vtype:"password",//自定義的驗(yàn)證類型
vtypeText:"兩次密碼不一致!",
confirmTo:"pass1",//要比較的另外一個(gè)的組件的id
}
4.使用正則表達(dá)式驗(yàn)證
復(fù)制代碼 代碼如下:
new Ext.form.TextField({
fieldLabel : "姓名",
name : "author_nam",
regex : /[\u4e00-\u9fa5]/, //正則表達(dá)式在/...../之間. [\u4e00-\u9fa5] : 只能輸入中文.
regexText:"只能輸入中文!", //正則表達(dá)式錯(cuò)誤提示
allowBlank : false //此驗(yàn)證依然有效.不許為空.
您可能感興趣的文章:
- jquery validate.js表單驗(yàn)證的基本用法入門(mén)
- js驗(yàn)證表單大全
- JavaScript 表單驗(yàn)證正則表達(dá)式大全[推薦]
- AngularJS實(shí)現(xiàn)表單驗(yàn)證
- JavaScript 使用正則表達(dá)式進(jìn)行表單驗(yàn)證的示例代碼
- 一個(gè)即時(shí)表單驗(yàn)證的javascript代碼
- javascript表單驗(yàn)證使用示例(javascript驗(yàn)證郵箱)
- JS 表單驗(yàn)證大全
- 手把手教你自己寫(xiě)一個(gè)js表單驗(yàn)證框架的方法
- js表單登陸驗(yàn)證示例
相關(guān)文章
入門(mén)基礎(chǔ)學(xué)習(xí) ExtJS筆記(一)
這段時(shí)間手中項(xiàng)目已經(jīng)完成,空閑時(shí)間較多。開(kāi)始了學(xué)習(xí)ExtJs之旅。2010-11-11Extjs學(xué)習(xí)筆記之五 一個(gè)小細(xì)節(jié)renderTo和applyTo的區(qū)別
Extjs的組件有兩個(gè)看起來(lái)類似的配置項(xiàng),applyTo和renderTo,這兩個(gè)配置項(xiàng)都是用來(lái)指定將該extjs組件加載到什么位置。那他們到底有什么區(qū)別呢,網(wǎng)上搜了下,有兩篇博文也是關(guān)于這個(gè)的。2010-01-01ExtJs默認(rèn)的字體大小改變的幾種方法(自己整理)
本文列出網(wǎng)上收集的幾種方法,希望對(duì)大家有用,并且做了下瀏覽器兼容,感興趣的朋友可以參考下哈2013-04-04Extjs中的GridPanel隱藏列會(huì)顯示在menuDisabled中解決方法
在Extjs中的GridPanel會(huì)有這樣的情況,隱藏列會(huì)顯示在menuDisabled中,但是這個(gè)一般沒(méi)有什么用處,只是用于后臺(tái)取值的作用,感興趣的朋友可以了解下啊,希望本文對(duì)你有所幫助2013-01-01EXTJS內(nèi)使用ACTIVEX控件引起崩潰問(wèn)題的解決方法
在本人目前的項(xiàng)目中,前端部分完全使用EXTJS基于“One-Page”理念搭建。2010-03-03EXTjs4.0的store的findRecord的BUG演示代碼
EXTjs4.0 的store的findRecord的BUG:當(dāng)判斷ID=1的時(shí)候,遇到1開(kāi)頭的ID的時(shí)候,這個(gè)時(shí)候就判斷出問(wèn)題了,有類似問(wèn)題的朋友可以了解下哈2013-06-06ExtJS4中使用mixins實(shí)現(xiàn)多繼承示例
在ExtJS4中使用mixins來(lái)實(shí)現(xiàn)多繼承,下面有個(gè)不錯(cuò)的示例,感興趣的朋友可以參考下2013-12-12