atitit.表單驗證 的dsl 本質跟 easyui ligerui比較

atitit.表單驗證的dsl?本質跟?easyui?ligerui比較?

?

1.?DSL?聲明驗證 1

2.?自定義規則 1

3.?正則表達式驗證,可以擴展實現 2

4.?犯錯誤消息提示,generic?canBeEmpty?is?good 3

5.?Prevent?the?form?to?submit?when?invalid 3

6.?為空則不驗證,不為空則驗證,的實現 5

7.?參考 6

?

?

1.?DSL?聲明驗證

?<input?class="easyui-validatebox"?type="text"?name="email"?required="true"?validType="email"></input>

We?add?a?class?named?easyui-validatebox?to?input?markup?so?the?input?markup?will?be?applied?the?validation?according?the?validType?attribute.

?

?

Liger

<input?ligeruiid="txtName"?style="width:?174px;"?class="l-text-field"?name="txtName"?id="txtName"?ltype="text"?validate="{required:true,minlength:3,maxlength:10}"?type="text">

?

驗證規則

驗證規則使用required和validType屬性來定義,?以下列出的是插件內置的驗證規則。

1?email:?正則匹配電子郵件。

2?url:?正則匹配url。

3?length[0,100]:?驗證長度范圍。

4?remote['http://.../action.do','paramName']:?發送ajax請求來驗證,驗證有效時返回true。

?

?

作者::?老哇的爪子?Attilax?艾龍,??EMAIL:1466519819@qq.com

轉載請注明來源:?http://blog.csdn.net/attilax

?

2.?自定義規則

要自定義規則,重載$.fn.validatebox.defaults。你所定義的驗證規則必須定義一個驗證函數和驗證無效時的提示信息。?例如,定義一個驗證最小長度的規則:

5?$.extend($.fn.validatebox.defaults.rules,?{???

6?????minLength:?{???

7?????????validator:?function(value,?param){???

8?????????????return?value.length?>=?param[0];???

9?????????},???

10?????????message:?'Please?enter?at?least?{0}?characters.'??

11?????}???

12?});??

現在你可以使用最小長度驗證規則來定義一個至少要輸入5個字符的輸入框。

13?<input?class="easyui-validatebox"?validType="minLength[5]">??

14?此處的validType=“minLength[5]”,設置可能無效,可設置為validType="length[3,8]",填入的值在3~8個字符之間

屬性

?

3.?正則表達式驗證,可以擴展實現

?

拓展2

$.extend($.fn.validatebox.defaults.rules,{

???idcard?:?{//?驗證身份證?

???????validator?:?function(value)?{?

???????????return/^\d{15}(\d{2}[A-Za-z0-9])?$/i.test(value);?

???????},?

???????message?:?'身份證號碼格式不正確'?

???},

?

4.?犯錯誤消息提示,generic?canBeEmpty?is?good

?

屬性

名稱

類型

描述

默認值

required(必填)

boolean(布爾型)

定義表單域必須填寫。

false

validType(驗證類型)

string(字符串)

定義表單域的驗證類型,比如:email,?url等。

null

missingMessage(未填提示)

string(字符串)

當表單域未填寫時出現的提示信息。

This?field?is?required.

invalidMessage(無效提示)

string(字符串)

當表單域的內容被驗證為無效時出現的提示。

null

?

?

?

Liger::::deft?is?this?field?is?not?be?empty?,,jsig?haon?normall....generic...

5.?Prevent?the?form?to?submit?when?invalid

When?users?click?the?submit?button?of?form,?we?should?prevent?the?form?to?submit?if?the?form?is?invalid.

15?$('#ff').form({

16?url:'form3_proc.php',

17?onSubmit:function(){

18?return?$(this).form('validate');

19?},

20?success:function(data){

21?$.messager.alert('Info',?data,?'info');

22?}

23?});

If?the?form?is?invalid,?a?tooltip?message?will?show.

--------liger

?

????????$(function?()

????????{

????????????$.metadata.setType("attr",?"validate");

????????????var?v?=?$("form").validate({

????????????????debug:?true,

????????????????errorPlacement:?function?(lable,?element)

????????????????{

????????????????????if?(element.hasClass("l-textarea"))

????????????????????{

????????????????????????element.ligerTip({?content:?lable.html(),?target:?element[0]?});

????????????????????}

????????????????????else?if?(element.hasClass("l-text-field"))

????????????????????{

????????????????????????element.parent().ligerTip({?content:?lable.html(),?target:?element[0]?});

????????????????????}

????????????????????else

????????????????????{

????????????????????????lable.appendTo(element.parents("td:first").next("td"));

????????????????????}

????????????????},

????????????????success:?function?(lable)

????????????????{

????????????????????lable.ligerHideTip();

????????????????????lable.remove();

????????????????},

????????????????submitHandler:?function?()

????????????????{

????????????????????$("form?.l-text,.l-textarea").ligerHideTip();

????????????????????alert("Submitted!")

????????????????}

????????????});

????????????$("form").ligerForm();

????????????$(".l-button-test").click(function?()

????????????{

????????????????alert(v.element($("#txtName")));

????????????});

????????});?

?

?

6.?為空則不驗證,不為空則驗證,的實現

現在是不適合的,還要自己擴展規則。?
但email,url,電話這種很多時候需求都是允許為空的。

重載一下驗證規則:

Js代碼??

24?$.extend($.fn.validatebox.defaults.rules,?{??

25?????email:{??

26?????????validator:function(value,param){??

27?????????????if?(value){??

28?????????????????return?/^([\w]+)(.[\w]+)*@([\w-]+\.){1,5}([A-Za-z]){2,4}$/.test(value);??

29?????????????}?else?{??

30?????????????????return?true;??

31?????????????}??

32?????????},??

33?????????message:'Please?enter?a?valid?email?address.'??

34?????},??

35?????url:{??

36?????????validator:function(value,param){??

37?????????????if?(value){??

38?????????????????return?/(((https?)|(ftp)):\/\/([\-\w]+\.)+\w{2,3}(\/[%\-\w]+(\.\w{2,})?)*(([\w\-\.\?\\\/+@&#;`~=%!]*)(\.\w{2,})?)*\/?)/i.test(value);??

39?????????????}?else?{??

40?????????????????return?true;??

41?????????????}??

42?????????},??

43?????????message:'Please?enter?a?valid?URL.'??

44?????}??

45?});??

??

?

?

?

7.?參考

擴展easyui?的表單驗證?-?瘋狂秀才?-?博客園.htm

easyui?正則表達式驗證擴展(包括一些經常用到的正則驗證式)_東avaj東_新浪博客.htm

我要啦免費統計

轉載于:https://www.cnblogs.com/attilax/p/5963920.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260202.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260202.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260202.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

StartActivityForResult

StartActivity 用startActivityForResult(intent, requestcode);啟動子功能模塊activity onActivityResult(int requestCode, int resultCode, Intent data)對子activity返回進行判斷處理 public class StartActivity extends Activity implements OnClickListener {private Bu…

micropython 串口寫文件_MicroPython通過2G模塊串口收發短信

集成2G通信、定位模組&#xff0c;賦予物聯網特性。本例使用M6220&#xff0c;它是一款基于eSIM技術的2G模組&#xff0c;支持GSM/GPRS&#xff0c;提供GPS北斗雙模定位功能&#xff0c;并具備一定的數據處理能力&#xff0c;其2G工作頻段有GSM850、GSM900、DCS1800和PCS1900&a…

洛谷P1130 紅牌

題目描述 某地臨時居民想獲得長期居住權就必須申請拿到紅牌。獲得紅牌的過程是相當復雜 &#xff0c;一共包括N個步驟。每一步驟都由政府的某個工作人員負責檢查你所提交的材料是否符合條件。為了加快進程&#xff0c;每一步政府都派了M個工作人員來檢查材料。不幸的是&#xf…

GPS坐標換算

30.8872 》——>300.8872*60 53.232 ——>530.232*60 13.9230: 53 13.92"30: 53 13.92"》3053/6013.92/360030.887199同經度兩點之間距離dla30.887m * [差值/(1/3600)] 30.887m * 差值 *3600 111193.2m * 差值 同緯度兩點之間距離dlo30.887m * [差值/(1…

企業級應用框架(五)IOC容器在框架中的應用

前言 在上一篇我大致的介紹了這個系列所涉及到的知識點&#xff0c;在本篇我打算把IOC這一塊單獨提取出來講&#xff0c;因為IOC容器在解除框架層與層之間的耦合有著不可磨滅的作用。當然在本系列前面的三篇中我也提供了一種基于反射的解耦方式&#xff0c;但是始終不是很優雅&…

后端開發需要學什么_都2020年了,還在糾結學什么語言?| 后端篇

幾個禮拜前&#xff0c;一個學弟問我&#xff1a;“Ray&#xff0c;我打算之后要找工作了&#xff0c;不過現在自己沒有特別深入的語言&#xff0c;最近想找一門好好學一下&#xff0c;你覺得學什么語言好呀&#xff1f;”我表示&#xff1a;“這個要看你求職方向、個人喜好、市…

python掃描ip的端口打開情況

我們的韓國bss系統上線之后&#xff0c;要求對主機的端口、資源使用進行統計&#xff0c;端口每個主機去看&#xff0c;太費勁了&#xff0c;所以&#xff0c;就寫了這樣一個小程序&#xff0c;不是很完美但是&#xff0c;可以用啊&#xff01;哈哈哈&#xff0c;別噴&#xff…

flash java 通信,Flash到JavaScript的通信實例

從HTML可以發送數據到Flash,反過來也可以. 這個例子演示了如何應用Flash的Fscommand來發送數據到Javascript.簡要步驟:Flash中新建一個文件,保存為flash_to_javascript.fla創建一個文本域,設置成輸入文本(Input Text),選擇"border"以便我們能看到他,指定他的變量為in…

10個非常有用的CSS hack和技術

轉自&#xff1a;http://www.qianduan.net/10-useful-css-hacks-and-technique.html 1 – 跨瀏覽器的inline-block <style>li {width: 200px;min-height: 250px;border: 1px solid #000;display: -moz-inline-stack;display: inline-block;margin: 5px;zoom: 1;*display:…

Java的遞歸算法

遞歸算法設計的基本思想是&#xff1a;對于一個復雜的問題&#xff0c;把原問題分解為若干個相對簡單類同的子問題&#xff0c;繼續下去直到子問題簡單到可以直接求解&#xff0c;也就是說到了遞推的出口&#xff0c;這樣原問題就有遞推得解。 關鍵要抓住的是&#xff1a; &…

python list遍歷定位元素_python for循環,第二遍定位不到元素?

ycyzharry: 也不行&#xff0c;我的代碼import unittestimport timeimport xlrdfrom selenium import webdriverimport seleniumdef open_excel(filefile.xls):try:data xlrd.open_workbook(file)return dataexcept Exception as e:print(str(e))def excel_table_byindex(file…

發現Java程序中的Bug

昨天在CSDN上閱讀 "Java中十個常見的違規編碼"這篇文章時&#xff0c;無意中找到了3個 "發現Java程序中的Bug"工具。 文章地址&#xff1a;http://www.csdn.net/article/2012-09-11/2809829-common-code-violations-in-java其中&#xff0c; FindBugs? - …

原生php登錄注冊,原生php登陸注冊

本以為一個登陸注冊功能十來分鐘就寫好了&#xff0c;沒想到thinkPHP用久了&#xff0c;原生的php不會寫了最開始我直接寫了類和方法&#xff0c;在前臺傳遞參數給類的login方法(action"index.php/login"),嘗試幾次發現無法訪問&#xff0c;這才意識到&#xff0c;這…

SpringMVC REST 風格靜態資源訪問配置

1 在web.xml中使用默認servlet處理靜態資源&#xff0c;缺點是如果靜態資源過多&#xff0c;則配置量會比較大&#xff0c;一旦有遺漏&#xff0c;則會造成資源無法正常顯示或404錯誤。 <!-- 靜態資源訪問控制 --><servlet-mapping><servlet-name>default<…

生成對象

var c[name,age,city]; var d[xiaogang,12,anhui]; var a{}; for(var i0;i<3;i){a[c[i]]d[i]; } console.log(a); //返回 {name: "xiaogang", age: "12", city: "anhui"} 轉載于:https://www.cnblogs.com/xiaozhumaopao/p/6046823.html

3.寄存器(內存訪問)

CPU中&#xff0c;用16位來存儲一個字。高8位存放高位字節&#xff0c;低8位存放低位字節。內存存儲中&#xff0c;內存單元是字節單元&#xff08;1單元1字節&#xff09;&#xff0c;則一個字要用兩個地址連續的內存單元存放。內存存儲中&#xff0c;高位字節&#xff0c;和低…

shiro前后端分離_為什么要前后端分離?前后端分離的優點是什么?

隨著互聯網的高速發展以及IT開發技術的升級&#xff0c;前后端分離已成為互聯網項目開發的業界標準使用方式。在實際工作中&#xff0c;前后端的接口聯調對接工作量占HTML5大前端人員日常工作的30%-50%&#xff0c;甚至會更高。接下來千鋒小編分享的廣州HTML5大前端學習就給大家…

POJ 2152 Fire

算是我的第一個樹形DP 的題&#xff1a; 題目意思&#xff1a;N個城市形成樹狀結構。現在建立一些消防站在某些城市&#xff1b;每個城市有兩個樹形cost&#xff08;在這個城市建立消防站的花費&#xff09;&#xff0c;limit &#xff1b; 我們要是每個城鎮都是安全的&#xf…

php 解析HTTP協議六種請求方法,get,head,put,delete,post有什么區別

GET&#xff1a; 請求指定的頁面信息&#xff0c;并返回實體主體。HEAD&#xff1a; 只請求頁面的首部。POST&#xff1a; 請求服務器接受所指定的文檔作為對所標識的URI的新的從屬實體。PUT&#xff1a; 從客戶端向服務器傳送的數據取代指定的文檔的內容。DELETE&#xff1a; …

python的socket連接不上_Python套接字只允許一個連接,但在新的連接上斷開,而不是拒絕...

我不確定我完全理解你的問題&#xff0c;但我認為下面的例子可以滿足你的要求。服務器可以斷開舊用戶的連接&#xff0c;為新用戶提供服務。在服務器端&#xff1a;#!/usr/bin/env pythonimport socketimport multiprocessingHOST 127.0.0.1PORT 50007# you can do your real…