日韩性视频-久久久蜜桃-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)-规划的全部內容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本黄色片在线播放 | 国产剧情av引诱维修工 | 欧美国产一级片 | 亚洲制服无码 | 国内精品久久久久久久久久 | 国产一区二区三区影视 | 亚洲色图制服诱惑 | 福利视频在线看 | 久久国产日韩欧美 | 欧美自拍第一页 | 超碰pron| 夜夜夜久久久 | 日本欧美三级 | 日本免费一区二区三区最新 | 国产黄色大片视频 | 久热国产在线 | 国产日韩在线免费观看 | 亚洲美女一区二区三区 | 色爱av综合 | 男生坤坤放进女生坤坤里 | 日韩在线激情 | 亚洲熟区| 张津瑜国内精品www在线 | 天堂综合| 大咪咪dvd | 蜜桃久久一区二区三区 | 精品久久久久久久久久久久久久 | 日日夜夜网 | 欧美人与性动交α欧美精品 | 青青草www | 少妇性l交大片免潘金莲 | 亚洲欧美综合自拍 | 国产毛片av | 欧美午夜精品久久久久久人妖 | 在线看黄色网 | 一个色综合网站 | 床戏高潮做进去大尺度视频网站 | a级黄色录像 | 香港黄色网址 | a v在线视频 | 国产精品久久久久久亚洲 | 国语对白做受69 | av网站国产| 人人草人人 | 少妇做爰免费视看片 | 51妺嘿嘿午夜福利 | 激情网婷婷 | 欧美一级久久久 | 免费黄色片网站 | 日韩va在线观看 | 国模精品一区 | 亚洲爽爆 | 亚洲欧美精品suv | 久草a视频| 黄色网页免费 | 欧美一级做性受免费大片免费 | 99热只有这里有精品 | 国产免费一区二区 | 一个综合色 | 噜噜噜精品欧美成人 | 亚洲大逼 | 可以在线观看的av | 国产原创在线观看 | 亚洲av无码乱码在线观看富二代 | 三年大全国语中文版免费播放 | 欧日韩在线视频 | 亚洲天堂av中文字幕 | 日韩高清免费av | 国产白丝av | 九九精品视频免费 | 国产精品一级无码 | 色综合久久88色综合天天免费 | h在线免费观看 | 精品国产乱码久久 | 国产精品秘入口18禁麻豆免会员 | 午夜性生活视频 | 亚洲29p| 国产精品国产三级国产专区51区 | 国产福利在线导航 | 天天想你在线观看完整版电影高清 | 国产午夜精品久久久久 | 亚洲在线色 | 国产一区二区三区在线播放无 | 丰满熟妇肥白一区二区在线 | 国产一级片久久 | 欧美三日本三级少妇三99 | 日韩精品极品视频在线观看免费 | 超碰66 | 亚洲一区中文字幕在线观看 | 91超碰在线| 丝袜操 | 一区二区三区在线观看视频 | 男人的天堂va | 丁香免费视频 | 国产欧美一区二区精品性色99 | 一级视频在线免费观看 | 男人的天堂中文字幕 | 特级西西人体444www | 天天艹日日艹 |