這幾天看了鋒利的jquery,感覺很不錯。特別是jquery強大的選擇器。今天就利用jquery寫了一個自己的form表單驗證的小案例。當鞏固下jquery。首先貼下代碼,當然只是一個小案例。
思路:
1、<input type="text" Validate="Date" id="date"/>這里的 Validate:是我們需要驗證的類型(屬於日期類型),這里你也可以自己定義。id屬性就不用說了。<input type="text" Validate="NotStringNull" id="notstring"/>
2、var arrayInput = jQuery('#FormData input');//獲取from表單的input標簽 這樣就可以找到form表單下所有的input標簽
3、遍歷改數組,獲取 Validate 屬性值,看是否需要驗證,在這里我用的是case匹配
4、用正則表達式來判斷或其他方來校驗改值是否合法
5、用 array 來存放結果和對應元素的ID
6、遍歷array 數組,如果判斷為false值,那么就把對應顏色的設置對應顏色的css值,提示用戶。
7、返回驗證的結果
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/> <title></title> <script src="jquery/jquery.min.js"></script> <script type="text/javascript"> jQuery(function () { jQuery('button').click(function () { var arrayInput = jQuery('#FormData input');//獲取from表單的input標簽 var isValidate = Validate(arrayInput); if (isValidate)//如果通過則可以發生ajax請求,提交數據到后台 jQuery('#result').text('驗證通過'); else jQuery('#result').text('驗證未通過'); }); }); //表單驗證函數 var Validate = function (arrayInput) { //將結果和對應的ID放入該數組 var array = new Array(); //循環遍歷需要驗證的input元素 arrayInput.each(function (index, element) { var type = jQuery(element).attr('Validate'); //獲取驗證的類型 比如日期、不為空的字符串 var Value = jQuery(element).val(); var obj = new Object(); switch (type) { //如果是日期驗證 case 'Date': var reg = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/; if (!reg.test(Value)) { obj.id = jQuery(element).attr('id'); obj.isval = false; } else { obj.id = jQuery(element).attr('id'); obj.isval = true; } array.push(obj); break; //如果是不為空的字符串驗證 case 'NotStringNull': if (Value == "" || Value.length == 0 || Value == null) { obj.id = jQuery(element).attr('id'); obj.isval = false; } else { obj.id = jQuery(element).attr('id'); obj.isval = true; } array.push(obj); break; } }) var isbool = true;//返回結果初始值設為true //循環遍歷結果 for (var i = 0; i < array.length; i++) { if (array[i].isval == false) { //驗證不通過,則改變元素的css樣式 jQuery('#' + jQuery(array[i]).attr('id')).css('background', 'red'); isbool = false; } } //返回驗證結果 return isbool; } </script> </head> <body> <button value="驗證" id="dd">驗證</button> <form id="FormData"> <!--驗證日期--> 日期驗證:<input type="text" Validate="Date" id="date"/><br /> 日期驗證:<input type="text" Validate="Date" id="date2"/><br /> <!--驗證不為空的字符串--> 不為空字符串驗證:<input type="text" Validate="NotStringNull" id="notstring"/><br /> <!--不需要最驗證--> <input type="text" /> <span id="result"></span> </form> </body> </html>
如圖:
驗證結果為 false
驗證結果為 false
驗證結果為 true