本文主要介紹了jQuery Validate表單驗證外掛實現程式碼,需要的朋友可以參考下,希望能幫助到大家。
1 表單驗證的準備工作
在開啟長篇大論之前,先將表單驗證的效果展示給大家。
1.點選表單項目,顯示幫助提示2.滑鼠離開表單項目時,開始校驗元素 3.滑鼠離開後的正確、錯誤提示及滑鼠移入時的幫助提醒
對於初學者而言,html表單驗證是一項極其瑣碎的事情。要做好表單驗證,需要準備以下基本要素:
1.html表單結構:包含需要校驗的表單元素;
2.js邏輯控制:在需要校驗的表單元素上綁定事件,如點擊、取得焦點、失去焦點等事件,並設定這些事件對應的執行函數;
3.css樣式設定:針對需要校驗的表單元素,需要設定預設的初始樣式,以及觸發元素綁定事件後的變化樣式。
這3類基本要素中,html表單結構的建立相對簡單。表單驗證的重點與困難在於如何利用js及時有效地提醒使用者有關表單操作的資訊。這裡我參考了百度,163郵箱,京東等知名互聯網企業的註冊頁面,歸納出表單驗證需要的主要提示信息分類如下:
1.表單元素獲取焦點後的幫助信息(插件中對應class名稱"tip");
2.表單元素驗證通過時的成功資訊(插件中對應class名稱"valid");
3.表單元素驗證失敗時的錯誤訊息(插件中對應class名稱"error")。
如果不借助任何插件,我們需要花費大量的時間去編寫不同類型的信息提示,考慮各種樣式間的來回切換,以及編寫一些基本的驗證規則。名言曰:「我之所以看得更遠,是因為我站在巨人的肩膀上」。何不直接利用一些現有的成熟插件,來幫助我們快速的編寫一個表單驗證功能,這樣既能提高效率,又能讓我們抽出時間專注於我們自己的邏輯。
在眾多表單驗證外掛程式中,jQuery validate外掛程式是歷史最悠久的jQuery外掛程式之一,經過了全球範圍內不同項目的驗證。它的特點如下:
1.內建驗證規則:擁有必填、數字、email、url和信用卡號碼等內建驗證規則;
2.自訂驗證規則:可以很方便地自訂驗證規則(透過$.validator.addMethod(name,method,message)實作);
3.簡單強大的驗證訊息提示:預設了驗證訊息提示,並提供自訂覆蓋預設訊息提示的功能(透過設定外掛程式中的message參數來實現);
4.即時驗證:可以透過keyup或blur事件觸發驗證,而不僅僅在表單提交的時候驗證。
下面我們選擇該插件,來實作一個簡單而漂亮的表單驗證範例。
2 jquery validate外掛程式實作表單驗證的小範例
在引入jquery validate外掛程式實作表單驗證的小範例
在引入jquery validate外掛程式前,需要先引入它所依賴的檔案jquery.js(範例中jquery的版本為1.9);在實現的過程中,為了更好地效果,我在jquery.validate.extend.js檔案中對jquery validate原有的功能進行了擴展,並修改了相關預設選項;因此在文檔頭部需要引入的文件有三個:
<script></script> <script></script> <script></script>
2.1 表單html
表單驗證3要素中,首先需要完成html表單結構程式碼的撰寫。為了讓表單結構簡單而清晰,我們將表單的每個元素都包裹在一個p結構中:用label標籤用來標記元素的名稱,接著就是表單元素本身。 【註明:1.使用label標籤的好處是為滑鼠使用者改進了可用性。當在label元素內點擊文字時,瀏覽器就會自動將焦點轉到和label相關的表單控制項。 2.每個需要校驗的表單元素都應該設定id和name屬性,方便使用外掛時將元素綁定校驗規則和校驗資訊。 】
表單實作程式碼如下:
###2.2 表單驗證js邏輯####接着我们通过js来实现对表单元素的校验。在校验之前,我对jquery validate插件进行了功能扩展,对默认的选项进行了重写覆盖。jquery validate插件默认只提供了校验正确及错误时的提示,缺少我们常见的帮助信息提示。为了解决这个问题,我仔细研究了插件的源码,发现插件本身提供了onfocusin(校验元素获得焦点时调用)和onfocusout(校验元素失去焦点时调用)这两个函数。通过修改默认参数的这两个接口,可以实现党用户鼠标点击或选择元素时(即元素获得焦点),提示帮助信息;在用户鼠标离开元素时(即元素失去焦点),移除帮助信息。
此外,jquery validate默认提供表单元素输入时的实时校验,因为我们要求在输入时只提示用户帮助信息,故需要关闭输入的实时校验,为此我们将默认参数中的onkeyup设置为null。
具体的扩展改进代码我放到了新增js脚本jquery.validate.extend.js中,代码如下:
/*******************************插件新功能-设置插件validator的默认参数*****************************************/ $.validator.setDefaults({ /*关闭键盘输入时的实时校验*/ onkeyup: null, /*添加校验成功后的执行函数--修改提示内容,并为正确提示信息添加新的样式(默认是valid)*/ success: function(label){ /*label的默认正确样式为valid,需要通过validClass来重置,否则这里添加的其他样式不能被清除*/ label.text('').addClass('valid'); }, /*重写校验元素获得焦点后的执行函数--增加[1.光标移入元素时的帮助提示,2.校验元素的高亮显示]两个功能点*/ onfocusin: function( element ) { this.lastActive = element; /*1.帮助提示功能*/ this.addWrapper(this.errorsFor(element)).hide(); var tip = $(element).attr('tip'); if(tip && $(element).parent().children(".tip").length === 0){ $(element).parent().append("<label>" + tip + "</label>"); } /*2.校验元素的高亮显示*/ $(element).addClass('highlight'); // Hide error label and remove error class on focus if enabled if ( this.settings.focusCleanup ) { if ( this.settings.unhighlight ) { this.settings.unhighlight.call( this, element, this.settings.errorClass, this.settings.validClass ); } this.hideThese( this.errorsFor( element ) ); } }, /*重写校验元素焦点离开时的执行函数--移除[1.添加的帮助提示,2.校验元素的高亮显示]*/ onfocusout: function( element ) { /*1.帮助提示信息移除*/ $(element).parent().children(".tip").remove(); /*2.校验元素高亮样式移除*/ $(element).removeClass('highlight'); /*3.替换下面注释的原始代码,任何时候光标离开元素都触发校验功能*/ this.element( element ); /*if ( !this.checkable( element ) && ( element.name in this.submitted || !this.optional( element ) ) ) { this.element( element ); }*/ } });
完善插件的功能后,现在就是重头戏——使用插件为表单元素绑定校验规则和校验信息。jquery validate插件提供validate方法实现form表单的元素校验,该方法的参数是一个包含键值对的对象。其中最常用的键有rules(为不同元素定义校验规则),messages(为不同元素定义错误提示信息),success(校验正确后的字符串或者是执行函数)。常见的校验规则有:required(是否必填),minlength(最小长度),maxlength(最大长度),email(email格式规则),url(url格式规则),date(date格式规则),rangelength(给定长度范围规则),equalTo(要求元素等于另一元素例如equalsTo:"#password")。下面的代码呈现了如何对表单中的用户名、密码等字段绑定校验规则:
<script> $(document).ready(function(){ $("#regForm").validate({ rules: { username:{ required: true, minlength: 2 }, password:{ required: true, minlength: 6, maxlength: 16 }, repassword:{ required: true, equalTo: "#password" }, amt: { required: true, amtCheck: true } }, messages:{ username:{ required: "用户名不能为空", minlength: "用户名的最小长度为2" }, password:{ required: "密码不能为空", minlength: "密码长度不能少于6个字符", maxlength: "密码长度不能超过16个字符" }, repassword:{ required: "确认密码不能为空", equalTo: "确认密码和密码不一致" }, amt: { required: "金额不能为空" } } }); }); </script>
2.3 表单验证css样式
最后还要为页面元素添加css样式。插件中有一系列默认选项:其中默认错误显示标签为label,错误样式为label.error。上面在jquery.validate.extend.js文件中,有一个success函数需要说明一下。这个函数是在校验成功的时候执行的,我们在函数中为label提示标签添加了校验正确对应的样式label.valid。因此在css中如果要美化信息提示,需要对label相关样式如error,valid样式进行设计。此外我们在扩展插件功能中添加了一个class为tip的label标签,该标签仅在校验元素获得焦点时生成。为此,还需要设置label的tip样式。
完整的样式文件内容具体如下:
body{ font-family: Microsoft Yahei; font-size: 15px; } fieldset{ width: 680px; } legend{ margin-left: 8px; } .item{ height: 56px; line-height: 36px; margin: 10px; } .item .item-label{ float: left; width: 80px; text-align: right; } .item-text{ float: left; width: 244px; height: 16px; padding: 9px 25px 9px 5px; margin-left: 10px; border: 1px solid #ccc; overflow: hidden; } .item-select{ float: left; height: 34px; border: 1px solid #ccc; margin-left: 10px; font-size: 14px; padding: 6px 0px; } .item-submit{ margin-left: 88px; } input.error{ border: 1px solid #E6594E; } input.highlight{ border: 1px solid #7abd54; } label.error,label.tip{ float: left; height: 32px; line-height: 32px; font-size: 14px; text-align: left; margin-left: 5px; padding-left: 20px; color: red; background: url('error.png') no-repeat left center; } label.tip{ color: #aaa; background: url('tip.png') no-repeat left center; } label.valid{ background: url('valid.png') no-repeat left center; width: 32px; }
3 表单验证效果演示
至此,表单校验的代码编写和插件的应用已经全部完成。在浏览器中运行代码,显示效果如下图:
基本上满足现在大多数网站表单验证的要求,如果需要增加验证规则,只需要在jquery.validate.extend.js中增加校验规则即可,例子如下:
/*******************************插件字段校验*****************************************/ $.validator.addMethod( "amtCheck", function(value, element){ /*var dotPos = value.indexOf('.'); return value > 0 && dotPos 0 && value.substring(dotPos + 1) <p>相关推荐:</p><p><a href="http://www.php.cn/js-tutorial-383769.html" target="_self">jquery.validate.js 多个相同name的处理方式详解</a></p><p><a href="http://www.php.cn/js-tutorial-383748.html" target="_self">jQuery Validate格式验证功能实例代码分享</a></p><p><a href="http://www.php.cn/js-tutorial-370245.html" target="_self">jQuery Validate的步骤 实用教程</a></p>
以上是jQuery Validate表單驗證外掛程式詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

是的,JavaScript的引擎核心是用C語言編寫的。 1)C語言提供了高效性能和底層控制,適合JavaScript引擎的開發。 2)以V8引擎為例,其核心用C 編寫,結合了C的效率和麵向對象特性。 3)JavaScript引擎的工作原理包括解析、編譯和執行,C語言在這些過程中發揮關鍵作用。

JavaScript是現代網站的核心,因為它增強了網頁的交互性和動態性。 1)它允許在不刷新頁面的情況下改變內容,2)通過DOMAPI操作網頁,3)支持複雜的交互效果如動畫和拖放,4)優化性能和最佳實踐提高用戶體驗。

C 和JavaScript通過WebAssembly實現互操作性。 1)C 代碼編譯成WebAssembly模塊,引入到JavaScript環境中,增強計算能力。 2)在遊戲開發中,C 處理物理引擎和圖形渲染,JavaScript負責遊戲邏輯和用戶界面。

JavaScript在網站、移動應用、桌面應用和服務器端編程中均有廣泛應用。 1)在網站開發中,JavaScript與HTML、CSS一起操作DOM,實現動態效果,並支持如jQuery、React等框架。 2)通過ReactNative和Ionic,JavaScript用於開發跨平台移動應用。 3)Electron框架使JavaScript能構建桌面應用。 4)Node.js讓JavaScript在服務器端運行,支持高並發請求。

Python更適合數據科學和自動化,JavaScript更適合前端和全棧開發。 1.Python在數據科學和機器學習中表現出色,使用NumPy、Pandas等庫進行數據處理和建模。 2.Python在自動化和腳本編寫方面簡潔高效。 3.JavaScript在前端開發中不可或缺,用於構建動態網頁和單頁面應用。 4.JavaScript通過Node.js在後端開發中發揮作用,支持全棧開發。

C和C 在JavaScript引擎中扮演了至关重要的角色,主要用于实现解释器和JIT编译器。1)C 用于解析JavaScript源码并生成抽象语法树。2)C 负责生成和执行字节码。3)C 实现JIT编译器,在运行时优化和编译热点代码,显著提高JavaScript的执行效率。

JavaScript在現實世界中的應用包括前端和後端開發。 1)通過構建TODO列表應用展示前端應用,涉及DOM操作和事件處理。 2)通過Node.js和Express構建RESTfulAPI展示後端應用。

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

Dreamweaver Mac版
視覺化網頁開發工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Dreamweaver CS6
視覺化網頁開發工具