日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

学习js,尝试写一个表单验证框架(1)-规划

發布時間:2025/7/14 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习js,尝试写一个表单验证框架(1)-规划 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

斗膽放到首頁來,如果不合適的話就刪了吧,謝謝

其實這個框架也已經寫了一點了,但是越寫越亂越沒把握,最終決定寫成博客的形式,強迫自己慢下步調,一點點仔細地規劃,設計,思考,期間也一定會遇到不少問題,還請各位前輩多多指教

剛開始學習js的時候,看著"無限靈活"的語法頭疼得要命,恨不得有哪個廠商可以推出個強類型的客戶端語言來
但是這畢竟是空想,也只好一點一點地去啃js這塊大肉
依舊頭疼,看了不少書,看了不少文章,用用別人的框架偶爾還是可以的,但是對js的許多機制依舊是半生不熟,所以決定自己嘗試一下
正好最近有個小東西想要個表單驗證的功能,就試著寫一份了

對于表單驗證的框架,已經有不少了,園里也有個FormValidator,幾乎是非常地完美,所以自己總得弄出些新意來
想來想去,決定給自己的框架提高一下用戶的自定義能力,大致的功能如下:

1.簡單地配置,自帶多數常見的驗證功能,代碼表現上采用一步式配置
2.可自定義可重用的驗證器,只需繼承自某個基類
3.提供"錯誤","正確"及"提醒"3種狀態
4.用戶指定提示顯示的位置及方式

在參考了Ext及園里的FormValidator(感謝大家~)之后,大致的預覽如下

首先你可以自定義可重用的驗證器,只需要繼承自CustomValidator

MyValidator?=?CustomValidator.extend({?//CustomValidator為基類
????value:?'',
????
????doValidator:?function(input)?
{
????????
return?input.val()?>?this.settings.value;
????}

}
);
然后在管理器中注冊一下自己的驗證規則
ValidatorMgr.registerRule('myrule',?MyValidator);?//注冊myrule,其handler為MyValidator
然后采用Ext聲明組件的方式在input上掛上validator
$('#username').validator({
????errorMsg:?
'Error!',
????validMsg:?
'Valid!',
????focusMsg:?
'Input?your?choice!',
????msgTarget:?
'tip_username',?//信息顯示的element?id,如果為空則自動在當前input后加一個
????msgType:?'tip',?//tip表示顯示一個圖標,移上去后顯示內容??text表示直接顯示內容
????
????validators:?[
{
????????rule:?
'required',?//必需項
????????errorMsg:?'Required!'
????}
,?{
????????rule:?
'length',?//長度驗證
????????minLen:?6,
????????maxLen:?
20,
????????errorMsg:?
'Length?should?be?between?6?and?20!'
????}
,?{
????????rule:?
'value',
????????value:?
'abc'
????}
,?{
????????rule:?
'regex',?//正則驗證
????????regex:?'[a-zA-Z]{6,20}',
????????errorMsg:?
'Wrong?format!'
????}
,?{
????????rule:?
'custom',?//自定義驗證,可使用方法進行驗證
????????doValidate:?function(input)?{
????????????
return?input.val()?==?'ABC';
????????}
,
????????errorMsg:?
'Custom?validate?error!'
????}
,?{
????????rule:?
'ajax',?//AJAX驗證,服務器需返回true或false
????????url:?'Validate.aspx',
????????errorMsg:?
'Ajax?validate?error!'
????}
,?{
????????rule:?
'myrule',?//使用注冊的類型
????????value:?'ABC',
????????errorMsg:?
'My?validate?error!'
????}
]
}
);
對于form,也有自己的validator,可以重寫success和fail方法
$('#form').setValidator({
????success:?
function()?{
????????alert(
'OK!');
????}

????failure:?
function(errors)?{
????????$.each(errors,?
function()?{
????????????alert(
this);
????????}
);
????}

}
);
具體的繼承關系如下圖

其中GroupValidator是最特殊的,直接掛在input下,而其他Validator全都保存于GroupValidator中,將會形成一條責任鏈以便調用

接下去大致想了一下難點:
1.繼承的問題,可以參考Ext的繼承的寫法,但是要看懂那個也得有些時日
2.validator放在哪里的問題,可以選擇在FormValidator里加入(從input.form.formValidator里找),也可以直接加在input上(如input.validator = new GroupValidator();)
3.對js的不熟悉依舊是最大的敵人,努力再努力~

總結

以上是生活随笔為你收集整理的学习js,尝试写一个表单验证框架(1)-规划的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲天堂影院 | 成人在线免费高清视频 | 一级黄色特级片 | 精品69| 天天躁日日躁aaaa视频 | 国产污视频 | 国产又色又爽又高潮免费 | 色婷av | 丝袜美腿亚洲一区二区图片 | 大咪咪av | 欧美色图在线播放 | 中文字幕一二三四 | 美女福利影院 | av网站在线看 | 国产aⅴ爽av久久久久成人 | 一炮成瘾1v1高h | 久久精品99国产国产精 | 污视频免费在线观看网站 | 丁香婷婷九月 | 国产性猛交xx乱 | 免费在线观看黄网站 | 第一毛片 | 欧美综合网站 | 天天插日日干 | 中文字幕视频一区 | 九九精品视频免费 | 一本大道av伊人久久综合 | 韩国av一区二区三区 | 91毛片网| 激情小说亚洲图片 | 亚洲熟妇无码av | 性生活三级视频 | 国产精品白嫩极品美女视频 | 久草网视频在线观看 | 无罩大乳的熟妇正在播放 | 杨贵妃颤抖双乳呻吟求欢小说 | 日韩三级中文字幕 | 人人草超碰 | 欧美成人一区二区在线 | 尤物视频在线观看国产性感 | 国产美女被草 | 欧美成人午夜影院 | 六月激情综合 | 丝袜+亚洲+另类+欧美+变态 | 色吊丝网站 | 黄色自拍视频 | 久久国产精品综合 | 爱的天堂 | 久久久久久久久久久久电影 | 成年人视频网站 | 久久精品aⅴ无码中文字字幕重口 | www,日韩 | 欧美播放 | 丁香一区二区三区 | a视频在线观看 | 国产三级在线免费 | 男人操女人的网站 | 不卡av网| 精品一区日韩 | 亚洲男人的天堂在线 | 日韩黄色一级 | 欧美成人黄色小说 | 91精品久久久久久久 | yes4444视频在线观看 | 懂色av,蜜臀av粉嫩av | 毛片国产| 亚洲精品综合网 | 亚洲色图 校园春色 | 欧美成人一区二区三区高清 | 国产97av| 97碰碰碰 | 奇米影视一区 | 久久b| 美女被男人c| 国产51页 | 冲田杏梨一区二区三区 | 伊人9999| 日韩插插 | 又黄又爽在线观看 | 五月天婷婷在线播放 | 国产乱码在线 | 涩涩成人网 | 日韩欧美成 | 波多野一区二区 | 粉嫩aⅴ一区二区三区 | 日本啪啪啪一区二区 | 天天色影网 | 国产精品jizz在线观看美国 | 欧美a图| 天天宗合| va婷婷在线免费观看 | 精品黑人一区二区三区观看时间 | 亚洲精品一级二级 | 亚洲中文字幕无码爆乳av | 黄色片视频免费 | 中文免费视频 | 99热这里只有精品1 亚洲人交配视频 | 亚洲激情自拍偷拍 | 少妇婷婷 |