日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Bootstrap 与 Jquery validate 结合使用——简单实现

發(fā)布時間:2025/4/16 49 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Bootstrap 与 Jquery validate 结合使用——简单实现 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

首先必須引入的JS和CSS

<script type="text/javascript" src="${ctx}/static/js/jquery-1.9.1.min.js"></script> <script type="text/javascript" src="${ctx}/static/js/card.js"></script><script type="text/javascript" src="${ctx}/static/js/bootstrap.min.js"></script> <script type="text/javascript" src="${ctx}/static/js/bootstrap-datetimepicker.min.js"></script> <script type="text/javascript" src="${ctx}/static/js/bootstrap-datetimepicker.zh-CN.js"></script><script type="text/javascript" src="${ctx}/static/js/jquery.validate.js"></script> <script type="text/javascript" src="${ctx}/static/js/additional-methods.js"></script> <script type="text/javascript" src="${ctx}/static/js/messages_bs_zh.js"></script><link rel="stylesheet" href="${ctx}/static/css/bootstrap.css"> <link rel="stylesheet" href="${ctx}/static/css/bootstrap-datetimepicker.min.css"><link rel="stylesheet" href="${ctx}/static/css/validate.css">

其中additional-methods.js是自定義的規(guī)則,messages_bs_zh.js是中文消息,validate.css是校驗信息樣式

additional-methods.js

/*!* jQuery Validation Plugin @VERSION** http://bassistance.de/jquery-plugins/jquery-plugin-validation/* http://docs.jquery.com/Plugins/Validation** Copyright (c) 2006 - 2011 J?rn Zaefferer** Dual licensed under the MIT and GPL licenses:* http://www.opensource.org/licenses/mit-license.php* http://www.gnu.org/licenses/gpl.html*/(function() {function stripHtml(value) {// remove html tags and space charsreturn value.replace(/<.[^<>]*?>/g, ' ').replace(/&nbsp;|&#160;/gi, ' ')// remove punctuation.replace(/[.(),;:!?%#$'"_+=\/-]*/g,'');}jQuery.validator.addMethod("maxWords", function(value, element, params) {return this.optional(element) || stripHtml(value).match(/\b\w+\b/g).length <= params;}, jQuery.validator.format("Please enter {0} words or less."));jQuery.validator.addMethod("minWords", function(value, element, params) {return this.optional(element) || stripHtml(value).match(/\b\w+\b/g).length >= params;}, jQuery.validator.format("Please enter at least {0} words."));jQuery.validator.addMethod("rangeWords", function(value, element, params) {var valueStripped = stripHtml(value);var regex = /\b\w+\b/g;return this.optional(element) || valueStripped.match(regex).length >= params[0] && valueStripped.match(regex).length <= params[1];}, jQuery.validator.format("Please enter between {0} and {1} words."));})();//中文的驗證 jQuery.validator.addMethod("chinese", function(value, element) { var chinese = /^[\u4e00-\u9fa5]+$/; return this.optional(element) || (chinese.test(value)); }, "只能輸入中文");//字節(jié)長度驗證 jQuery.validator.addMethod("FixedLength", function(value, element, param) { var length = value.length; return this.optional(element) || (length == param); }, $.validator.format("請輸入長度為{0}的字符串"));//比較大小 jQuery.validator.addMethod("compareSize", function(value, element, param) { var sta = parseInt($(param).val()); var stat = $(param).closest("td").prev().text();var curt = $(this).closest("td").prev().text();return this.optional(element) || (parseInt(value)>=sta); }, $.validator.format("前面的值不能大于后面"));//價格精度 jQuery.validator.addMethod("Price", function(value, element, param) { var precision = 0;var precisions = value.split("."); if(precisions.length>1)precision = precisions[0].length;elseprecision = value.length;return this.optional(element) || (precision <= param); }, $.validator.format("輸入的數(shù)值過大!"));//日期比較 jQuery.validator.addMethod("compareDate",function(value, element,param) {var startDate = $(param).val();return new Date(Date.parse(startDate.replace("-", "/"))) <= new Date(Date.parse(value.replace("-", "/")));},"結(jié)束日期必須大于開始日期!");//開始日期和結(jié)束日期不能超過一年 jQuery.validator.addMethod("compareYear",function(value, element,param) {var startDate = $(param).val();var year = startDate.substring(0,4);var newyear = parseInt(year)+1;var newDate=newyear+startDate.substring(4,startDate.length);return new Date(Date.parse(newDate.replace("-", "/"))) >= new Date(Date.parse(value.replace("-", "/")));},"開始日期和結(jié)束日期不能超過一年!");//驗證卡長度 jQuery.validator.addMethod("cardlength", function (value, element) {var length = value.length;return this.optional(element) || (length == 19); }, "卡號長度驗證失敗");//驗證密碼 jQuery.validator.addMethod("passwd", function (value, element) {if(passwordLevel(value)==1){return false;}return true; }, "請輸入正確的密碼格式!");//身份證號碼驗證 jQuery.validator.addMethod("isIdCardNo", function(value, element) { return this.optional(element) || idCardNoUtil.checkIdCardNo(value); }, "請正確輸入您的身份證號碼"); //護照編號驗證jQuery.validator.addMethod("passport", function(value, element) { return this.optional(element) || checknumber(value); }, "請正確輸入您的護照編號"); //電話號碼驗證 jQuery.validator.addMethod("telmob", function (value, element) {var length = value.length;var mobile = /^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/;return this.optional(element) || (length == 11 && mobile.test(value)); }, "電話號碼格式錯誤");//聯(lián)系電話(手機/電話皆可)驗證 jQuery.validator.addMethod("isPhone", function(value,element) { var length = value.length; var mobile = /^(((13[0-9]{1})|(15[0-9]{1})|(18[0-9]{1}))+\d{8})$/; var tel = /^(\d{3,4}-?)?\d{7,9}$/g; return this.optional(element) || tel.test(value) || (length==11 && mobile.test(value)); }, "請正確填寫您的聯(lián)系方式"); //傳真 jQuery.validator.addMethod("fax", function (value, element) {var length = value.length;var mobile = /^\d{3,4}-\d{7,8}$/;return this.optional(element) || (mobile.test(value)); }, "傳真號碼錯誤");//驗證碼校驗 jQuery.validator.addMethod("checkVerifyCode", function (value, element) {var verifyCode = value;var res =false;$.ajax({type:"POST",async:false, url:"/default/index/ajax/do/ajaxcheckuser",data:"verifyCode="+verifyCode,success:function(response){if(response){res = false;}else{res = true;}}});return res; }, "驗證碼不正確");//手機號碼驗證 jQuery.validator.addMethod("mobile", function (value, element) {var length = value.length;var mobile = /^((13[0-9])|(15[^4,\\D])|(18[0-9])|(17[0-9]))+\d{8}$/;return this.optional(element) || (length == 11 && mobile.test(value)); }, "手機號碼格式錯誤"); //郵政編碼 jQuery.validator.addMethod("isZipCode", function (value, element) {var tel = /^[0-9]{6}$/;return this.optional(element) || (tel.test(value)); }, "請正確填寫您的郵政編碼"); // QQ號碼驗證 jQuery.validator.addMethod("qq", function (value, element) {var tel = /^[1-9]\d{4,9}$/;return this.optional(element) || (tel.test(value)); }, "qq號碼格式錯誤"); //中文字兩個字節(jié) jQuery.validator.addMethod("byteRangeLength", function(value, element, param) { var length = value.length; for(var i = 0; i < value.length; i++){ if(value.charCodeAt(i) > 127){ length++; } } return this.optional(element) || ( length >= param[0] && length <= param[1] ); }, $.validator.format("請確保輸入的值在{0}-{1}個字節(jié)之間(一個中文字算2個字節(jié))")); jQuery.validator.addMethod("letterswithbasicpunc", function(value, element) {return this.optional(element) || /^[a-z\-.,()'\"\s]+$/i.test(value); }, "Letters or punctuation only please");jQuery.validator.addMethod("alphanumeric", function(value, element) {return this.optional(element) || /^\w+$/i.test(value); }, "Letters, numbers, and underscores only please");jQuery.validator.addMethod("lettersonly", function(value, element) {return this.optional(element) || /^[a-z]+$/i.test(value); }, "Letters only please");jQuery.validator.addMethod("nowhitespace", function(value, element) {return this.optional(element) || /^\S+$/i.test(value); }, "No white space please");jQuery.validator.addMethod("ziprange", function(value, element) {return this.optional(element) || /^90[2-5]\d\{2\}-\d{4}$/.test(value); }, "Your ZIP-code must be in the range 902xx-xxxx to 905-xx-xxxx");jQuery.validator.addMethod("zipcodeUS", function(value, element) {return this.optional(element) || /\d{5}-\d{4}$|^\d{5}$/.test(value) }, "The specified US ZIP Code is invalid");jQuery.validator.addMethod("integer", function(value, element) {return this.optional(element) || /^-?\d+$/.test(value); }, "A positive or negative non-decimal number please");/*** Return true, if the value is a valid vehicle identification number (VIN).** Works with all kind of text inputs.** @example <input type="text" size="20" name="VehicleID" class="{required:true,vinUS:true}" />* @desc Declares a required input element whose value must be a valid vehicle identification number.** @name jQuery.validator.methods.vinUS* @type Boolean* @cat Plugins/Validate/Methods*/ jQuery.validator.addMethod("vinUS", function(v) {if (v.length != 17) {return false;}var i, n, d, f, cd, cdv;var LL = ["A","B","C","D","E","F","G","H","J","K","L","M","N","P","R","S","T","U","V","W","X","Y","Z"];var VL = [1,2,3,4,5,6,7,8,1,2,3,4,5,7,9,2,3,4,5,6,7,8,9];var FL = [8,7,6,5,4,3,2,10,0,9,8,7,6,5,4,3,2];var rs = 0;for(i = 0; i < 17; i++){f = FL[i];d = v.slice(i,i+1);if (i == 8) {cdv = d;}if (!isNaN(d)) {d *= f;} else {for (n = 0; n < LL.length; n++) {if (d.toUpperCase() === LL[n]) {d = VL[n];d *= f;if (isNaN(cdv) && n == 8) {cdv = LL[n];}break;}}}rs += d;}cd = rs % 11;if (cd == 10) {cd = "X";}if (cd == cdv) {return true;}return false; }, "The specified vehicle identification number (VIN) is invalid.");/*** Return true, if the value is a valid date, also making this formal check dd/mm/yyyy.** @example jQuery.validator.methods.date("01/01/1900")* @result true** @example jQuery.validator.methods.date("01/13/1990")* @result false** @example jQuery.validator.methods.date("01.01.1900")* @result false** @example <input name="pippo" class="{dateITA:true}" />* @desc Declares an optional input element whose value must be a valid date.** @name jQuery.validator.methods.dateITA* @type Boolean* @cat Plugins/Validate/Methods*/ jQuery.validator.addMethod("dateITA", function(value, element) {var check = false;var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/;if( re.test(value)){var adata = value.split('/');var gg = parseInt(adata[0],10);var mm = parseInt(adata[1],10);var aaaa = parseInt(adata[2],10);var xdata = new Date(aaaa,mm-1,gg);if ( ( xdata.getFullYear() == aaaa ) && ( xdata.getMonth () == mm - 1 ) && ( xdata.getDate() == gg ) )check = true;elsecheck = false;} elsecheck = false;return this.optional(element) || check; }, "Please enter a correct date");jQuery.validator.addMethod("dateNL", function(value, element) {return this.optional(element) || /^\d\d?[\.\/-]\d\d?[\.\/-]\d\d\d?\d?$/.test(value); }, "Vul hier een geldige datum in.");jQuery.validator.addMethod("time", function(value, element) {return this.optional(element) || /^([0-1][0-9]|2[0-3]):([0-5][0-9])$/.test(value); }, "Please enter a valid time, between 00:00 and 23:59"); jQuery.validator.addMethod("time12h", function(value, element) {return this.optional(element) || /^((0?[1-9]|1[012])(:[0-5]\d){0,2}(\ [AP]M))$/i.test(value); }, "Please enter a valid time, between 00:00 am and 12:00 pm");/*** matches US phone number format** where the area code may not start with 1 and the prefix may not start with 1* allows '-' or ' ' as a separator and allows parens around area code* some people may want to put a '1' in front of their number** 1(212)-999-2345* or* 212 999 2344* or* 212-999-0983** but not* 111-123-5434* and not* 212 123 4567*/ jQuery.validator.addMethod("phoneUS", function(phone_number, element) {phone_number = phone_number.replace(/\s+/g, "");return this.optional(element) || phone_number.length > 9 &&phone_number.match(/^(1-?)?(\([2-9]\d{2}\)|[2-9]\d{2})-?[2-9]\d{2}-?\d{4}$/); }, "Please specify a valid phone number");jQuery.validator.addMethod('phoneUK', function(phone_number, element) {phone_number = phone_number.replace(/\s+|-/g,'');return this.optional(element) || phone_number.length > 9 &&phone_number.match(/^(\(?(0|\+44)[1-9]{1}\d{1,4}?\)?\s?\d{3,4}\s?\d{3,4})$/); }, 'Please specify a valid phone number');jQuery.validator.addMethod('mobileUK', function(phone_number, element) {phone_number = phone_number.replace(/\s+|-/g,'');return this.optional(element) || phone_number.length > 9 &&phone_number.match(/^((0|\+44)7(0|4|5|6|7|8|9){1}\d{2}\s?\d{6})$/); }, 'Please specify a valid mobile number');//Matches UK landline + mobile, accepting only 01-3 for landline or 07 for mobile to exclude many premium numbers jQuery.validator.addMethod('phonesUK', function(phone_number, element) {phone_number = phone_number.replace(/\s+|-/g,'');return this.optional(element) || phone_number.length > 9 &&phone_number.match(/^(0[1-3]{1}[0-9]{8,9})$/) || phone_number.match(/^(07[5-9]{1}[0-9]{7,8})$/); }, 'Please specify a valid uk phone number');//Matches UK postcode. based on http://snipplr.com/view/3152/postcode-validation/ jQuery.validator.addMethod('postcodeUK', function(postcode, element) {postcode = (postcode.toUpperCase()).replace(/\s+/g,'');return this.optional(element) || postcode.match(/^([^QZ]{1}[^IJZ]{0,1}[0-9]{1,2})([0-9]{1}[^CIKMOV]{2})$/) || postcode.match(/^([^QV]{1}[0-9]{1}[ABCDEFGHJKSTUW]{1})([0-9]{1}[^CIKMOV]{2})$/) || postcode.match(/^([^QV]{1}[^IJZ][0-9]{1}[ABEHMNPRVWXY])([0-9]{1}[^CIKMOV]{2})$/) || postcode.match(/^(GIR)(0AA)$/) || postcode.match(/^(BFPO)([0-9]{1,4})$/) || postcode.match(/^(BFPO)(C\/O[0-9]{1,3})$/); }, 'Please specify a valid postcode');// TODO check if value starts with <, otherwise don't try stripping anything jQuery.validator.addMethod("strippedminlength", function(value, element, param) {return jQuery(value).text().length >= param; }, jQuery.validator.format("Please enter at least {0} characters"));// same as email, but TLD is optional jQuery.validator.addMethod("email2", function(value, element, param) {return this.optional(element) || /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i.test(value); }, jQuery.validator.messages.email);// same as url, but TLD is optional jQuery.validator.addMethod("url2", function(value, element, param) {return this.optional(element) || /^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)*(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i.test(value); }, jQuery.validator.messages.url);// NOTICE: Modified version of Castle.Components.Validator.CreditCardValidator // Redistributed under the the Apache License 2.0 at http://www.apache.org/licenses/LICENSE-2.0 // Valid Types: mastercard, visa, amex, dinersclub, enroute, discover, jcb, unknown, all (overrides all other settings) jQuery.validator.addMethod("creditcardtypes", function(value, element, param) {if (/[^0-9-]+/.test(value)) {return false;}value = value.replace(/\D/g, "");var validTypes = 0x0000;if (param.mastercard)validTypes |= 0x0001;if (param.visa)validTypes |= 0x0002;if (param.amex)validTypes |= 0x0004;if (param.dinersclub)validTypes |= 0x0008;if (param.enroute)validTypes |= 0x0010;if (param.discover)validTypes |= 0x0020;if (param.jcb)validTypes |= 0x0040;if (param.unknown)validTypes |= 0x0080;if (param.all)validTypes = 0x0001 | 0x0002 | 0x0004 | 0x0008 | 0x0010 | 0x0020 | 0x0040 | 0x0080;if (validTypes & 0x0001 && /^(51|52|53|54|55)/.test(value)) { //mastercardreturn value.length == 16;}if (validTypes & 0x0002 && /^(4)/.test(value)) { //visareturn value.length == 16;}if (validTypes & 0x0004 && /^(34|37)/.test(value)) { //amexreturn value.length == 15;}if (validTypes & 0x0008 && /^(300|301|302|303|304|305|36|38)/.test(value)) { //dinersclubreturn value.length == 14;}if (validTypes & 0x0010 && /^(2014|2149)/.test(value)) { //enroutereturn value.length == 15;}if (validTypes & 0x0020 && /^(6011)/.test(value)) { //discoverreturn value.length == 16;}if (validTypes & 0x0040 && /^(3)/.test(value)) { //jcbreturn value.length == 16;}if (validTypes & 0x0040 && /^(2131|1800)/.test(value)) { //jcbreturn value.length == 15;}if (validTypes & 0x0080) { //unknownreturn true;}return false; }, "Please enter a valid credit card number.");jQuery.validator.addMethod("ipv4", function(value, element, param) {return this.optional(element) || /^(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/i.test(value); }, "Please enter a valid IP v4 address.");jQuery.validator.addMethod("ipv6", function(value, element, param) {return this.optional(element) || /^((([0-9A-Fa-f]{1,4}:){7}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}:[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){5}:([0-9A-Fa-f]{1,4}:)?[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){4}:([0-9A-Fa-f]{1,4}:){0,2}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){3}:([0-9A-Fa-f]{1,4}:){0,3}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){2}:([0-9A-Fa-f]{1,4}:){0,4}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){6}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(([0-9A-Fa-f]{1,4}:){0,5}:((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|(::([0-9A-Fa-f]{1,4}:){0,5}((\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b)\.){3}(\b((25[0-5])|(1\d{2})|(2[0-4]\d)|(\d{1,2}))\b))|([0-9A-Fa-f]{1,4}::([0-9A-Fa-f]{1,4}:){0,5}[0-9A-Fa-f]{1,4})|(::([0-9A-Fa-f]{1,4}:){0,6}[0-9A-Fa-f]{1,4})|(([0-9A-Fa-f]{1,4}:){1,7}:))$/i.test(value); }, "Please enter a valid IP v6 address.");/** * Return true if the field value matches the given format RegExp * * @example jQuery.validator.methods.pattern("AR1004",element,/^AR\d{4}$/) * @result true * * @example jQuery.validator.methods.pattern("BR1004",element,/^AR\d{4}$/) * @result false * * @name jQuery.validator.methods.pattern * @type Boolean * @cat Plugins/Validate/Methods */ jQuery.validator.addMethod("pattern", function(value, element, param) {if (this.optional(element)) {return true;}if (typeof param === 'string') {param = new RegExp('^(?:' + param + ')$');}return param.test(value); }, "Invalid format.");/** Lets you say "at least X inputs that match selector Y must be filled."** The end result is that neither of these inputs:** <input class="productinfo" name="partnumber">* <input class="productinfo" name="description">** ...will validate unless at least one of them is filled.** partnumber: {require_from_group: [1,".productinfo"]},* description: {require_from_group: [1,".productinfo"]}**/ jQuery.validator.addMethod("require_from_group", function(value, element, options) {var validator = this;var selector = options[1];var validOrNot = $(selector, element.form).filter(function() {return validator.elementValue(this);}).length >= options[0];if(!$(element).data('being_validated')) {var fields = $(selector, element.form);fields.data('being_validated', true);fields.valid();fields.data('being_validated', false);}return validOrNot; }, jQuery.format("Please fill at least {0} of these fields."));/** Lets you say "either at least X inputs that match selector Y must be filled,* OR they must all be skipped (left blank)."** The end result, is that none of these inputs:** <input class="productinfo" name="partnumber">* <input class="productinfo" name="description">* <input class="productinfo" name="color">** ...will validate unless either at least two of them are filled,* OR none of them are.** partnumber: {skip_or_fill_minimum: [2,".productinfo"]},* description: {skip_or_fill_minimum: [2,".productinfo"]},* color: {skip_or_fill_minimum: [2,".productinfo"]}**/ jQuery.validator.addMethod("skip_or_fill_minimum", function(value, element, options) {var validator = this;numberRequired = options[0];selector = options[1];var numberFilled = $(selector, element.form).filter(function() {return validator.elementValue(this);}).length;var valid = numberFilled >= numberRequired || numberFilled === 0;if(!$(element).data('being_validated')) {var fields = $(selector, element.form);fields.data('being_validated', true);fields.valid();fields.data('being_validated', false);}return valid; }, jQuery.format("Please either skip these fields or fill at least {0} of them."));// Accept a value from a file input based on a required mimetype jQuery.validator.addMethod("accept", function(value, element, param) {// Split mime on commas incase we have multiple types we can acceptvar typeParam = typeof param === "string" ? param.replace(/,/g, '|') : "image/*",optionalValue = this.optional(element),i, file;// Element is optionalif(optionalValue) {return optionalValue;}if($(element).attr("type") === "file") {// If we are using a wildcard, make it regex friendlytypeParam = typeParam.replace("*", ".*");// Check if the element has a FileList before checking each fileif(element.files && element.files.length) {for(i = 0; i < element.files.length; i++) {file = element.files[i];// Grab the mimtype from the loaded file, verify it matchesif(!file.type.match(new RegExp( ".?(" + typeParam + ")$", "i"))) {return false;}}}}// Either return true because we've validated each file, or because the// browser does not support element.files and the FileList featurereturn true; }, jQuery.format("Please enter a value with a valid mimetype."));// Older "accept" file extension method. Old docs: http://docs.jquery.com/Plugins/Validation/Methods/accept jQuery.validator.addMethod("extension", function(value, element, param) {param = typeof param === "string" ? param.replace(/,/g, '|') : "png|jpe?g|gif";return this.optional(element) || value.match(new RegExp(".(" + param + ")$", "i")); }, jQuery.format("Please enter a value with a valid extension."));

messages_bs_zh.js

/** Translated default messages for the jQuery validation plugin.* Locale: ZH (Chinese, 中文 (Zhōngwén), 漢語, 漢語)*/ jQuery.extend(jQuery.validator.messages, {required: "必填字段",remote: "請修正該字段",email: "請輸入正確格式的電子郵件",url: "請輸入合法的網(wǎng)址",date: "請輸入合法的日期",dateISO: "請輸入合法的日期 (ISO)(YYYY-MM-DD)",number: "請輸入合法的數(shù)字",digits: "只能輸入整數(shù)",creditcard: "請輸入合法的信用卡號",equalTo: "請再次輸入相同的值",accept: "請輸入擁有合法后綴名的字符串",maxlength: jQuery.validator.format("請輸入一個長度最多是 {0} 的字符串"),minlength: jQuery.validator.format("請輸入一個長度最少是 {0} 的字符串"),rangelength: jQuery.validator.format("請輸入一個長度介于 {0} 和 {1} 之間的字符串"),range: jQuery.validator.format("請輸入一個介于 {0} 和 {1} 之間的值"),max: jQuery.validator.format("請輸入一個最大為 {0} 的值"),min: jQuery.validator.format("請輸入一個最小為 {0} 的值") });

validate.css

span.form-control-feedback{
?? ?margin-top: 10px;
}
span.help-block{
?? ?margin: 15px 5px;
}
.bank-card-div span.form-control-feedback{
?? ?margin-right: 40px;
}
.verify-code-div span.form-control-feedback{
?? ?margin-right: 95.6px;
}
.exp-date-div span.form-control-feedback{
?? ?margin-right: 39.2px;
}

頁面調(diào)用Jquery-validate

$(function(){//表單數(shù)據(jù)校驗var validate = $("#userPay").validate({errorElement : 'span',errorClass : 'help-block',debug: false, //調(diào)試模式取消submit的默認提交功能 focusInvalid: false, //當為false時,驗證無效時,沒有焦點響應 submitHandler: function(form){ //表單提交句柄,為一回調(diào)函數(shù),帶一個參數(shù):form alert("提交表單"); form.submit(); //提交表單 }, rules:{name:{required : true,minlength : 2},idCard:{required : true,isIdCardNo : true},phone:{required : true,mobile : true},cvn:{required : true,FixedLength : 3,},cardNo:{required : true,FixedLength : 16},verifyCode:{required : true,FixedLength : 4,checkVerifyCode : true},expDate:{required:true,date : true} },messages:{name:{required : "請輸入姓名",minlength : "請輸入正確的姓名"},idCard:{required : "請輸入身份證號"},phone:{required : "請輸入手機號碼"},cardNo:{required :"請輸入銀行信用卡",cardlength : "請輸入正確的銀行信用卡"},cvn:{required : "請輸入CVN",FixedLength : "請輸入3位的CVN"},verifyCode:{required : "請輸入驗證碼",FixedLength : "請輸入有效的驗證碼",},expDate:{required : "請輸入有效日期"}},//自定義錯誤消息放到哪里errorPlacement : function(error, element) {//區(qū)分普通輸入框和輸入框組,如果直接用element.next().remove();會錯誤刪除標簽(即輸入框組的<span class="input-group-addon"></span>)element.nextUntil(".input-group-addon").remove();//element.next().remove();//刪除顯示圖標element.after('<span class="glyphicon glyphicon-remove form-control-feedback" aria-hidden="true"></span>');element.closest('.form-group').append(error);//顯示錯誤消息提示 },//給未通過驗證的元素進行處理highlight : function(element) {$(element).closest('.form-group').addClass('has-error has-feedback');},//驗證通過的處理success : function(label) {var el=label.closest('.form-group').find("input");//區(qū)分普通輸入框和輸入框組,如果直接用el.next().remove();會錯誤刪除標簽(即輸入框組的<span class="input-group-addon"></span>)el.nextUntil(".input-group-addon").remove();//el.next().remove();//刪除顯示圖標 el.after('<span class="glyphicon glyphicon-ok form-control-feedback" aria-hidden="true"></span>');label.closest('.form-group').removeClass('has-error').addClass("has-feedback has-success");label.remove();},}); });

html頁面

<form id="userPay" action="" method="post" ><table><tr><td><div class="form-group"><label for="dtp_input3" class="label-title control-label">姓名:</label><div class="input-group input-div"><input id="name" name="name" required class="form-control readonly-input" size="16" type="text" value=""></div></div></td><td class="float-td"><div class="form-group"><label for="dtp_input3" class="label-title control-label">身份證:</label><div class="input-group input-div"><input id="idCard" name="idCard" class="form-control readonly-input" size="16" type="text" value=""></div></div></td></tr><tr><td><div class="form-group"><label for="dtp_input3" class="label-title control-label">手機:</label><div class="input-group input-div"><input id="phone" name="phone" class="form-control readonly-input" size="16" type="text" value=""></div></div></td></tr><tr><td><div class="form-group bank-card-div"><label for="dtp_input3" class="label-title control-label">銀行卡:</label><div class="input-group date input-div"><input id="cardNo" name="cardNo" class="form-control" data-toggle="dropdown" size="16" type="text" value=""/><input id="copy-cardNo" type="hidden" value=""/><span class="input-group-addon" data-toggle="dropdown"><span class="glyphicon glyphicon-transfer"></span></span><ul id="userCards" class="dropdown-menu"><!-- <li><span>信用卡(7757)</span><a href="#">刪除</a></li><li><span οnclick="javascript: changeCard(this);">信用卡(7757)</span><a href="#" οnclick= "return confirm('是否確定');">刪除</a></li><li><span οnclick="javascript: changeCard(this);">信用卡(7757)</span><a href="#" οnclick= "return confirm('是否確定');">刪除</a></li><li><span οnclick="javascript: changeCard(this);">信用卡(7757)</span><a href="#" οnclick= "return confirm('是否確定');">刪除</a></li> --></ul></div></div></td><td class="float-td"><div class="form-group"><label for="dtp_input3" class="label-title control-label">CVN:</label><div class="input-group input-div"><input id="cvn" name="cvn" class="form-control" size="3" type="text" value=""></div></div></td></tr><tr><td><div class="form-group verify-code-div"><label for="dtp_input3" class="label-title control-label">驗證碼:</label><div class="input-group input-div"><input id="verifyCode" name="verifyCode" class="form-control" data-toggle="dropdown" size="16" type="text" value=""><span class="input-group-addon verify-code-span"><button id="verify-code" class="btn btn-primary verify-code-button" data-loading-text="已發(fā)送" type="button">發(fā)送驗證碼</button></span></span></div></div></td><td class="float-td"><div class="form-group exp-date-div"><label for="dtp_input2" class="label-title control-label">有效期:</label><div class="datepicker input-group date form_date input-div"><input id="expDate" name="expDate" class="form-control" data-toggle="dropdown" size="16" type="text" value="" readonly><span class="input-group-addon"><span class="glyphicon glyphicon-calendar"></span></span></div></div></td></tr></table><input id="submit-btn" class="btn btn-primary submit-button" data-loading-text="正在提交" type="submit" value="確認支付"/> </form>

?如果

轉(zhuǎn)載于:https://www.cnblogs.com/onlymate/p/6673147.html

總結(jié)

以上是生活随笔為你收集整理的Bootstrap 与 Jquery validate 结合使用——简单实现的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

国产一线天在线观看 | 在线观看网站av | 亚洲视频电影在线 | 综合在线观看色 | 91经典在线 | 免费色视频网址 | 国产精品久久久久高潮 | 在线观看免费一区 | 亚洲综合视频在线播放 | 日韩欧美在线观看一区二区三区 | 亚洲精品乱码久久久久v最新版 | 国产69精品久久app免费版 | 中文字幕永久 | 麻豆国产精品va在线观看不卡 | 一区二区视频欧美 | 亚洲国产69 | 国产一区精品在线观看 | 五月婷婷色丁香 | 91福利视频久久久久 | 91在线91拍拍在线91 | 日韩精品 在线视频 | 日本黄色大片免费 | 亚洲人成免费 | 亚洲国产精品资源 | 亚洲专区免费观看 | 丁香九月激情综合 | 久久久福利影院 | 日韩av视屏在线观看 | 久久精品精品电影网 | 久久精品8| 免费一级片在线观看 | 免费a网站| 99亚洲精品 | 欧美亚洲成人xxx | 国产精品久99 | 中文字幕在线免费播放 | 中文字幕日本特黄aa毛片 | 成人网看片 | 狠狠干2018| 好看av在线 | 久久96国产精品久久99漫画 | 欧洲精品视频一区 | 色偷偷88888欧美精品久久久 | 最新av网站在线观看 | 欧美日韩国产精品一区二区 | www久久国产 | 国产精品久久久久久久久久直播 | 久久99国产综合精品 | 91精品在线免费观看视频 | 欧美午夜剧场 | 久久综合九色99 | 91在线视频免费播放 | 亚洲国产成人精品电影在线观看 | 91在线视频导航 | 在线亚洲欧美日韩 | 99久久久久 | 国产一区二区三区午夜 | 天天干婷婷 | 亚洲国产精品999 | 美女亚洲精品 | 国产1区2区 | 亚洲免费黄色 | 在线观看91久久久久久 | 黄色免费在线看 | 国产成年免费视频 | 人人爽人人爽人人片av免 | 精品在线一区二区三区 | 天天天天天干 | 亚洲在线视频免费观看 | 18国产精品白浆在线观看免费 | 国产精品自产拍在线观看桃花 | 国产美女精品视频免费观看 | 成人h动漫精品一区二 | 国产99久久久国产精品成人免费 | 五月天中文字幕 | 欧产日产国产69 | 99资源网 | 日韩二区在线 | 久久久久久久久久久免费av | 九九热1| 国产精品专区在线 | 国产999视频在线观看 | 久久桃花网| av 一区二区三区四区 | 日日干天天 | 日批在线观看 | 激情视频在线高清看 | 91视频观看免费 | 欧美一区二区视频97 | 在线观看蜜桃视频 | 亚洲国产免费看 | 久久精品视频免费播放 | 999久久国产 | 国产精品第二页 | 99久久婷婷 | 成人免费观看电影 | 国产主播99 | 久久久亚洲影院 | 亚洲国产剧情 | aaa免费毛片 | 99在线观看免费视频精品观看 | 婷婷五天天在线视频 | 国产第一页福利影院 | 五月天色站 | 制服丝袜亚洲 | 国产精品欧美久久久久三级 | 岛国精品一区二区 | 亚洲美女免费精品视频在线观看 | 一区二区三区av在线 | 国内精品久久久久久 | 9999在线观看 | 免费看国产精品 | 黄色成人在线网站 | 久久国产精品小视频 | 日韩一级电影网站 | 激情偷乱人伦小说视频在线观看 | 国产精品免费观看视频 | 九九热av | 99日韩精品| 又黄又爽又无遮挡免费的网站 | 最新真实国产在线视频 | 久草在线高清 | 成人91在线 | 97日日| 国产视频在线看 | 国产字幕在线观看 | 一级特黄aaa大片在线观看 | 久热av在线| 奇米影视777影音先锋 | 激情综合五月天 | 久久乐九色婷婷综合色狠狠182 | 国模视频一区二区 | 成人欧美一区二区三区黑人麻豆 | 久草线 | 国产精品网红直播 | 日本中文乱码卡一卡二新区 | 美女久久久 | 久久成人免费 | 午夜av大片 | aⅴ精品av导航 | 91精品久久久久久久久 | 日韩亚洲国产精品 | 久久电影中文字幕视频 | 日韩免费一区二区 | 99麻豆视频 | 友田真希av| 免费在线观看成年人视频 | 欧美日韩国产mv | 亚洲欧美日本A∨在线观看 青青河边草观看完整版高清 | 午夜久草 | 亚洲精品在线播放视频 | 精品国精品自拍自在线 | 欧美极品少妇xxxxⅹ欧美极品少妇xxxx亚洲精品 | 亚洲欧美激情插 | 好看的国产精品视频 | 18久久久 | 日韩欧美国产免费播放 | 婷婷丁香国产 | 国产91免费观看 | 狠狠狠综合 | 欧美aa一级片 | 国产精品久久久久永久免费看 | 色婷在线| 色婷婷婷| 狠狠狠色丁香综合久久天下网 | 国产成人av电影 | 日韩av中文字幕在线免费观看 | 婷婷色影院 | 国产精品久久久久久久久免费 | 日本中文字幕影院 | 亚洲一区二区麻豆 | 国产一区二区成人 | 久久综合九色综合欧美狠狠 | 91传媒91久久久 | 中文字幕一区二区三区久久 | 三级a毛片 | 欧美在线视频免费 | 欧美天天综合网 | 97激情影院| 黄色av影院 | 久久精品国产一区二区电影 | 国产色视频网站2 | 国产精品二区在线观看 | 久久精品国产久精国产 | 国产精品日韩在线观看 | av在线免费网 | 在线免费视频 你懂得 | 色网址99 | 午夜精品在线看 | 国产网站色 | 欧美激情视频一区 | 日韩视频免费 | 色婷婷久久一区二区 | 香蕉网址| 日韩在线观看第一页 | 日韩天天操 | 99久久99久久精品免费 | 国产精品理论片 | 成人性生交大片免费观看网站 | 麻豆视频国产在线观看 | 人人爽人人爽人人爽学生一级 | 国产亚洲综合精品 | 一本到在线 | bbb搡bbb爽爽爽 | 欧美性超爽 | 天天综合人人 | 久久综合久色欧美综合狠狠 | 超碰九九 | 美女在线免费视频 | 久久精品亚洲国产 | 国产日韩欧美在线影视 | 亚洲成人午夜av | 国内精品久久久久久久影视简单 | 9幺看片| 99精品欧美一区二区三区黑人哦 | 日韩在线播放av | 中文字幕黄色 | 午夜视频免费播放 | 超碰成人免费电影 | 免费视频久久久 | 久久美女免费视频 | 久久久久久毛片精品免费不卡 | 99视频在线免费观看 | 国产精品h在线观看 | 国产视频中文字幕在线观看 | 丁香高清视频在线看看 | 中文字幕精品一区二区精品 | 欧美一级电影免费观看 | 91精彩视频在线观看 | 97精品国产91久久久久久 | av福利在线免费观看 | 国产一区二区日本 | 日日日天天天 | 美女免费视频观看网站 | 少妇bbb | 久久久一本精品99久久精品66 | 最近中文字幕免费大全 | 国产麻豆精品在线观看 | 欧美久久久久久久久 | av色一区| 天天射,天天干 | 最近最新mv字幕免费观看 | 国产视频在线免费观看 | 国产精品免费在线 | 极品美女被弄高潮视频网站 | 日韩视频免费观看高清完整版在线 | 日韩精品亚洲专区在线观看 | 国产一区在线视频 | 国产成人精品综合 | 97国产精品视频 | 国产91在线 | 美洲 | 五月在线视频 | 免费在线观看a v | 黄色av一区二区 | 91精品久久久久久久久久入口 | 人成电影网| 黄色在线网站噜噜噜 | 欧美日韩不卡在线观看 | 国产精品av免费 | 五月婷婷亚洲 | 91在线看网站| 日韩影视大全 | 99re国产| 国产一级在线视频 | 四虎4hu永久免费 | 日韩在线观看高清 | 久久精品站 | 久久久久久久国产精品影院 | 婷婷色影院 | 国产成人精品亚洲精品 | 69av久久 | 婷婷在线色 | 中文字幕在线观看三区 | 久要激情网 | 久久人人爽人人 | 99国产精品久久久久久久久久 | 中文字幕亚洲欧美日韩2019 | 久久国产午夜精品理论片最新版本 | 成人一级在线观看 | 免费观看的黄色片 | 日韩av片无码一区二区不卡电影 | 免费福利在线 | 国产在线视频导航 | 国产精品久久久久久久久久了 | 国产色在线,com | 香蕉视频18 | 日韩视频免费观看高清 | 亚洲开心激情 | 精品产品国产在线不卡 | 日韩欧美网站 | 狠狠干在线播放 | 国产在线 一区二区三区 | 日韩3区 | av在线之家电影网站 | 亚洲一级片在线看 | 午夜av在线免费 | 日韩精品中文字幕av | 色婷婷国产在线 | www成人av | 久久综合九色九九 | 一区二区三区在线免费播放 | 日韩av免费观看网站 | 久久国产热视频 | 成人网色 | 99精品在线看 | 亚洲网站在线看 | 日韩精品极品视频 | 91黄色在线观看 | 91麻豆看国产在线紧急地址 | 国产一区二区三区网站 | 日本h视频在线观看 | 日本久久久久久久久 | 日韩欧美在线高清 | 国产91精品久久久久 | 国产精品原创视频 | 人人插人人艹 | 日韩免费在线视频 | 国产一区在线免费观看视频 | 国产精品免费久久久久影院仙踪林 | 少妇bbw搡bbbb搡bbb | 欧美激情视频一二三区 | 97在线观看视频国产 | 国产91精品一区二区麻豆亚洲 | 香蕉视频一级 | 成年人免费在线播放 | 97天堂网 | 色香天天 | 日日夜夜天天人人 | 日韩精品久久久久久中文字幕8 | 韩日三级在线 | 夜又临在线观看 | 中文字幕在线资源 | 精品国产成人 | 成人av影视观看 | 国产黑丝一区二区三区 | 麻豆传媒视频在线播放 | 日本中文字幕在线一区 | 日韩色视频在线观看 | 草久在线视频 | 日韩免费av片| 91精品国产自产老师啪 | 免费a v在线 | 奇米网网址 | 一区二区精品在线观看 | 日日爽夜夜爽 | 国产精品一区二区三区四区在线观看 | 亚洲狠狠丁香婷婷综合久久久 | 最新91在线视频 | 综合中文字幕 | 欧美色综合天天久久综合精品 | 亚洲综合狠狠干 | 欧美国产日韩一区二区 | 特级毛片网 | 亚洲成人av片在线观看 | 亚洲成成品网站 | 99热手机在线观看 | www.com.日本一级 | 美女在线免费视频 | 国产午夜精品一区 | 亚洲黄a | 中文字幕久久精品一区 | 麻豆传媒精品 | 天天操天天干天天爱 | 国产在线无 | 国产一性一爱一乱一交 | 在线播放国产精品 | 国产老妇av | 国产精品久久在线 | 中文字幕一区在线观看视频 | 六月丁香激情综合 | 天天五月天色 | 91免费版在线 | 天天玩天天干天天操 | 成人一区二区在线观看 | 国产69精品久久久久99尤 | 色婷婷激情电影 | 91干干干 | 91免费高清在线观看 | 免费三级黄色片 | 最新日韩电影 | 色黄视频免费观看 | 精品在线观看国产 | 午夜精品视频一区二区三区在线看 | 欧美大片aaa | 日韩高清免费无专码区 | 91人人爽人人爽人人精88v | 天天干天天射天天操 | 国产麻豆精品一区二区 | 国产区在线 | 国产精品久久久久久久久久久杏吧 | 四虎成人免费影院 | 国产精品久久久久久影院 | 国产亚洲人成网站在线观看 | 日韩精品高清视频 | 在线观看播放av | 日韩中文字幕91 | 丁香婷婷深情五月亚洲 | 91网站观看 | 国产精品久久久久久电影 | 欧美有色 | 免费成人在线观看视频 | 日韩三级视频 | 国产一区黄色 | 国产精品久久久久久久久岛 | 国产九色视频在线观看 | 国产aaa大片 | 国产成人三级在线观看 | 一区二区观看 | 婷婷国产v亚洲v欧美久久 | 99精品欧美一区二区蜜桃免费 | 九九综合在线 | 成人在线视频免费观看 | 国产流白浆高潮在线观看 | 亚洲精品九九 | 手机色站| 日韩黄色大片在线观看 | 久久一线 | 亚洲日本一区二区在线 | www黄com| 最近乱久中文字幕 | 久99久在线视频 | 国产第一福利 | www.在线看片.com | 亚洲天堂免费视频 | 久久午夜视频 | 麻豆视频入口 | 色av网站| 欧美性极品xxxx娇小 | 国产一级免费在线 | 国产资源站 | 91欧美视频网站 | 国色天香av | 日韩一三区 | 欧美在线视频二区 | 天天爽网站 | 亚洲一本视频 | 青青五月天 | 久久色中文字幕 | 91午夜精品 | 国产一级淫片免费看 | 国产高清在线精品 | 在线免费观看黄 | 最新动作电影 | av电影免费在线看 | 亚洲丝袜中文 | 国产成人精品一区二区三区在线观看 | 91九色视频导航 | 免费日韩 | 中文字幕在线观看三区 | 国产成人99久久亚洲综合精品 | 狠狠狠狠狠色综合 | 欧美一二三视频 | 久久精品免费电影 | 97色噜噜 | 天天干夜夜想 | 亚洲欧洲精品一区二区 | 国产精品欧美久久久久无广告 | 中文av在线天堂 | 婷婷色五 | 91精品国产成人 | 日韩大片免费在线观看 | 久久综合精品一区 | 免费高清在线观看成人 | 久久视影| 亚洲欧洲久久久 | 中文字幕一区二区三区久久蜜桃 | 国产精品一区二区在线播放 | 91视频大全 | 香蕉97视频观看在线观看 | 在线免费av观看 | 免费看亚洲毛片 | 激情视频免费在线 | 欧美专区国产专区 | 欧美视屏一区二区 | 国产精品二区三区 | 99久久99久国产黄毛片 | 在线高清| 91人人视频在线观看 | 国产精品久久av | 国产一区欧美二区 | 国产精品成人一区二区三区吃奶 | 国产在线不卡一区 | 九九热视频在线播放 | 久久久久欧美精品999 | 国产在线第三页 | 最近中文字幕高清字幕免费mv | 中文字幕一区在线 | 2017狠狠干 | 91精品国产91| 97电院网手机版 | 349k.cc看片app | 亚洲欧美国产日韩在线观看 | 天天综合网在线观看 | 亚洲专区 国产精品 | 日本在线观看一区二区三区 | 欧美孕交vivoestv另类 | 久久成人在线 | 国产精品毛片久久久久久久久久99999999 | 色综合人人 | 五月天综合色 | av一级在线 | 亚洲精品视频网址 | 亚洲精品久久久久中文字幕二区 | 日韩免费在线观看网站 | 国产亚洲婷婷免费 | 精品国精品自拍自在线 | 99热在线国产 | 人人添人人澡人人澡人人人爽 | 在线视频麻豆 | 免费成人黄色片 | 一区二区三区免费看 | 亚洲综合成人婷婷小说 | 国产性xxxx | 日韩av片免费在线观看 | 日韩女同av | 色婷婷在线观看视频 | 在线免费观看成人 | 天天爽天天爽夜夜爽 | 日韩欧美一区二区三区免费观看 | 国产精品刺激对白麻豆99 | 美女黄频免费 | 亚洲色图27p | 国产精品毛片一区视频 | 色狠狠一区二区 | 成人久久久电影 | 中文字幕一区二区三区四区久久 | 国产精品久久久毛片 | 国产女人免费看a级丨片 | 久草精品视频 | 深夜精品福利 | 久久久久免费精品国产小说色大师 | 精品成人a区在线观看 | 亚洲黄色在线免费观看 | 国产精品久久久久久99 | 国产精品美女免费看 | 国产精品久久伊人 | 中文字幕 二区 | 欧美一二三视频 | 日韩欧美精品一区二区三区经典 | 婷婷精品视频 | 一区二区亚洲精品 | 国产精品1区2区 | 久久久高清视频 | 中文在线a在线 | 一区二区三区四区精品视频 | 麻豆小视频在线观看 | 久久久影院官网 | 黄色的网站免费看 | 国产亚洲人成网站在线观看 | 涩涩爱夜夜爱 | 天天射夜夜爽 | 欧美日韩免费在线观看视频 | 狠狠干天天射 | 久久精品www人人爽人人 | 中文字幕成人一区 | 国产馆在线播放 | 成人啪啪18免费游戏链接 | 欧美福利在线播放 | 精品一区二区在线观看 | 久久99精品热在线观看 | 成人午夜电影在线 | 美女黄久久 | 国产午夜麻豆影院在线观看 | 日韩午夜高清 | 蜜臀av性久久久久蜜臀av | 日韩电影久久久 | 日本中文字幕网站 | 久久精品成人 | 天天操天天操天天操天天 | 亚洲午夜精品一区二区三区电影院 | 激情小说久久 | 久久毛片视频 | 国产看片 色 | 欧美另类重口 | 免费av高清| 精品一区二区6 | 国产精品免费久久久久影院仙踪林 | 91看片网址 | 亚洲美女视频在线观看 | 国产精品久久一卡二卡 | 日韩av中文字幕在线免费观看 | 99免费在线| 成人动漫一区二区 | 午夜精品久久久久久久久久久久 | 日韩av电影免费观看 | 日韩久久久 | 欧美日韩高清一区二区 国产亚洲免费看 | 51久久成人国产精品麻豆 | 日韩欧美精品在线 | 久草成人在线 | 99热九九这里只有精品10 | 久久黄色免费视频 | 日韩a在线观看 | 999久久久久久久久 69av视频在线观看 | 免费观看全黄做爰大片国产 | 日韩国产精品毛片 | 亚洲成年人免费网站 | 欧美精品久久久久久久久免 | 免费看亚洲毛片 | 狂野欧美激情性xxxx欧美 | 国产99久久久国产精品成人免费 | 在线观看黄网站 | 国产一区二区电影在线观看 | 亚洲一本视频 | 精品视频资源站 | 97超碰中文| 亚洲精品字幕 | 欧美日韩亚洲在线观看 | 国产免费久久精品 | 欧美一区二区精品在线 | 欧美a级片免费看 | 在线激情网 | 狠狠色丁香婷婷综合久小说久 | 国产高清在线永久 | 色精品视频 | 在线国产小视频 | 又爽又黄在线观看 | 国产成人精品在线 | 激情视频亚洲 | 久草视频资源 | 992tv在线 | 成人午夜电影久久影院 | 一级片免费观看 | av不卡在线看| 色插综合 | 久久99国产精品久久99 | 在线婷婷 | 国产特级毛片 | 中文字幕观看av | 国产精品自在线拍国产 | 亚洲高清在线精品 | 51久久成人国产精品麻豆 | 午夜精品视频一区二区三区在线看 | 97超碰精品| 97人人澡人人添人人爽超碰 | 日韩电影在线观看一区二区 | 99久久精品免费看国产 | 久久久国产精品电影 | 久久天天躁狠狠躁亚洲综合公司 | 激情久久婷婷 | 中文字幕资源网 国产 | 中文字幕色播 | 国产黄色在线网站 | 天天操夜夜干 | 国产专区在线 | 中日韩男男gay无套 日韩精品一区二区三区高清免费 | 亚洲天堂精品视频在线观看 | av在线网站观看 | 亚洲视频免费在线看 | 伊香蕉大综综综合久久啪 | 午夜视频一区二区 | 久久免费在线视频 | 最近能播放的中文字幕 | 色婷婷激情综合 | 深爱激情av| 欧美乱大交 | 免费看的黄色的网站 | 蜜桃av人人夜夜澡人人爽 | 中文字幕在线播放日韩 | 最近字幕在线观看第一季 | 日韩精品一区二区在线视频 | 叶爱av在线 | 国产精品国产三级国产专区53 | 一级片视频在线 | 十八岁免进欧美 | 亚洲天堂网在线视频观看 | 国产精品一区二区三区观看 | 亚洲国产成人久久综合 | 国产在线精品国自产拍影院 | 久久字幕网 | 亚洲aⅴ乱码精品成人区 | 激情视频网页 | 亚洲精品国产综合久久 | 不卡av免费在线观看 | 天天操夜夜操天天射 | www.99在线观看 | 午夜av免费在线观看 | 亚洲精品美女久久 | 国产91九色蝌蚪 | 久久少妇av | 国产亚洲精品久久久久久大师 | 91久久人澡人人添人人爽欧美 | 亚洲狠狠| 亚洲涩涩网 | 亚洲激精日韩激精欧美精品 | 麻豆一区二区三区视频 | 日韩av播放在线 | 婷婷草| 国产精品成人自拍 | 亚洲干视频在线观看 | 91精品爽啪蜜夜国产在线播放 | 91亚洲影院 | 欧美怡红院视频 | 狠狠干电影 | 天天爱天天舔 | 亚洲伊人av | 久久久免费国产 | 最近日本韩国中文字幕 | 免费高清国产 | 五月天丁香视频 | 中文字幕久久精品一区 | 日韩专区在线观看 | 99国产精品久久久久老师 | 日韩激情中文字幕 | 久久国产成人午夜av影院潦草 | 99高清视频有精品视频 | 在线免费av网 | 插综合网| 中文一区在线 | 菠萝菠萝在线精品视频 | 区一区二在线 | 欧美日韩国产色综合一二三四 | 亚洲一区二区视频在线 | 日韩一区正在播放 | 波多野结衣电影久久 | 成人资源在线 | 欧亚日韩精品一区二区在线 | 五月婷在线 | 欧美人操人| 日韩黄色大片在线观看 | 91精品免费在线视频 | 亚洲精品网站在线 | 日韩欧美在线免费观看 | 日韩欧美视频一区二区三区 | 丰满少妇在线观看网站 | 久久国产品 | 特黄特色特刺激视频免费播放 | 激情av资源 | av在线专区 | 超碰国产在线观看 | 一区二区三区在线观看中文字幕 | 国产色中涩 | 国产美女主播精品一区二区三区 | 国产一区视频导航 | 国产精品不卡av | 欧美日韩不卡一区二区 | 天天曰视频| 国产日韩欧美在线观看视频 | 天天色天天艹 | 午夜黄网| 午夜的福利 | 久久久久久久福利 | 亚洲欧美日韩国产 | 深爱激情综合网 | 日韩精品视频免费专区在线播放 | 中文字幕888 | a级国产乱理伦片在线播放 久久久久国产精品一区 | 久久精品视频日本 | 久久久久久久久久久网站 | 国产一级黄色电影 | 亚洲四虎影院 | 亚洲伊人网在线观看 | 国产在线观看免费 | 久二影院 | 五月的婷婷| 久久优 | 日韩一级片大全 | 日韩在线电影观看 | av电影免费观看 | 这里只有精品视频在线 | 精品久久久久久久久久 | 日本99精品 | 日日干天天干 | 97人人人人 | 久久男人免费视频 | 免费av的网站 | 婷婷伊人五月 | 免费色网站 | 在线 视频 一区二区 | 亚洲永久国产精品 | 亚洲视频免费在线 | 激情网站网址 | 免费裸体视频网 | 久草网在线视频 | 毛片播放网站 | 久久久久看片 | 国产91免费在线观看 | 欧美在线1区 | 亚洲资源在线网 | 久久久久久久久久久久久国产精品 | 久久久久国产精品厨房 | 国产专区一 | 视频一区在线免费观看 | 91av原创 | 在线播放第一页 | 国产在线视频一区二区 | 婷婷午夜 | 国产精品麻豆视频 | 婷婷中文字幕在线观看 | 69av视频在线观看 | 亚洲黄色成人网 | 91福利视频免费 | 在线你懂的视频 | 青草草在线 | 美女视频久久黄 | 96香蕉视频 | 天堂在线视频中文网 | 97在线视频网站 | 日韩电影一区二区在线观看 | 日韩视频在线播放 | 五月婷婷黄色 | 亚洲精品视频网 | 成人在线播放免费观看 | 91在线视频在线 | 福利电影一区二区 | 久草在线视频免费资源观看 | 国产精品久久一卡二卡 | 天天干亚洲 | 日韩二区三区在线 | 国产视频一区精品 | 亚洲黄在线观看 | 日韩视频在线不卡 | 99久久er热在这里只有精品66 | www.色婷婷.com| 五月激情站| 91丨九色丨蝌蚪丨对白 | 欧美日韩啪啪 | 又黄又色又爽 | 久色婷婷 | 中文字幕 成人 | 久久精品视频观看 | 一级黄视频 | 最新av电影网站 | 久久国产精品精品国产色婷婷 | 亚洲精品男女 | 视频二区在线 | 超碰在线日韩 | 精品福利在线 | www.xxx.性狂虐 | 97电院网手机版 | 久久影视精品 | 黄色成人91 | 国产精品色婷婷视频 | 激情久久五月 | 国产精品美乳一区二区免费 | 精品国产一区在线观看 | 国产一区二区不卡在线 | 丝袜美腿亚洲 | 欧美坐爱视频 | 日本色小说视频 | 99久久精品国产亚洲 | 欧美在线一 | 9992tv成人免费看片 | 91av99| 91爱爱电影 | 欧美激情h| 精品国产一二三四区 | 激情五月激情综合网 | 91久久爱热色涩涩 | 久久久久久麻豆 | 中文字幕在线视频免费播放 | 超碰在线人人艹 | 99热精品免费观看 | 欧美在线日韩在线 | 九色91在线 | 欧美在线a视频 | 中国精品少妇 | 亚洲 欧美 精品 | 一区二区三区精品久久久 | 激情婷婷在线 | 国产黄色资源 | 免费视频二区 | 亚洲精品国产免费 | 在线不卡a| 美女视频黄免费的久久 | 亚洲aⅴ久久精品 | 99久久精品久久亚洲精品 | 欧美极品裸体 | 国产v在线观看 | 四虎永久网站 | 国产精品久久久久久电影 | 欧美狠狠操 | 香蕉在线视频播放网站 | av久久久| 欧美99热 | 国内精品久久久久久久久久久 | 超碰免费av | 国产精品久久一卡二卡 | 97超碰网 | 五月天久久 | 成人a级黄色片 | 丁香婷婷射 | 欧美亚洲xxx | 九月婷婷人人澡人人添人人爽 | 久久激情视频 久久 | 久久午夜免费视频 | 色99久久 | 日本一区二区不卡高清 | 婷婷五天天在线视频 | 中文字幕韩在线第一页 | 中文字幕在线观看的网站 | 99自拍视频在线观看 | 欧美资源在线观看 | 亚洲国产中文在线 | 亚洲午夜精品电影 | 色噜噜在线观看视频 | 日韩欧美高清一区二区三区 | 欧美日韩高清一区 | 天天拍天天草 | 丁香视频全集免费观看 | 日本夜夜草视频网站 | 亚洲热视频 | 欧美男同视频网站 | 九九九九九九精品 | 欧洲精品久久久久毛片完整版 | 日韩视频欧美视频 | 亚洲一级黄色 | 成人午夜黄色 | 亚洲精品久久久久中文字幕二区 | 天天射天天舔天天干 | 免费中文字幕视频 | 久久免费在线观看 | 久久综合毛片 | 91成年视频| 伊人狠狠干 | 亚洲一二三区精品 | 97香蕉久久超级碰碰高清版 | 成人中文字幕在线观看 | 毛片精品免费在线观看 | 欧美老女人xx | 99在线观看精品 | 亚洲黄色小说网 | 高清av免费观看 | 一级黄色片在线观看 | 亚洲视频999| 亚州中文av | 色综合久久88色综合天天免费 | 四虎在线免费观看 | 777视频在线观看 | av大全在线 | 久久国产露脸精品国产 | 超碰资源在线 | 国产成人黄色在线 | 亚洲国产欧美在线人成大黄瓜 | 91精品在线免费观看 | 精品亚洲免费 | 国产黄色免费 | 五月花激情 | 久久久久精 | 国产精品私人影院 | 国产午夜精品一区二区三区欧美 | 日本激情视频中文字幕 | 黄色在线观看www | 在线观看免费高清视频大全追剧 | 久久久久蜜桃 | 在线视频观看亚洲 | 亚洲精品资源在线 | 欧美日韩一区二区三区免费视频 | 狠狠婷婷 | 国产一区欧美二区 | 91九色porny蝌蚪视频 | 日韩中文字幕视频在线 | 国产91精品在线观看 | 四虎免费在线观看视频 | 奇米先锋| 国产无吗一区二区三区在线欢 | 99热精品在线观看 | 成 人 黄 色 视频播放1 | 97超碰在线视 | 亚洲激情婷婷 | 99在线免费视频 | 久久精彩视频 | 在线视频观看亚洲 | 国产第一页在线播放 | 精品特级毛片 | www.黄色片网站 | 精品成人久久 | 亚洲电影久久 | 成人黄色电影在线观看 | 日韩成人高清在线 | 日韩av五月天 | www黄色软件 | 91高清免费| 日韩理论在线视频 | 久久综合色一综合色88 | 91大神在线观看视频 | 天天色.com | 丁香花在线观看视频在线 | 六月色 | 网站在线观看你们懂的 | 欧美人人| 国产看片免费 | 国产91大片| 99久久久成人国产精品 | 婷婷精品在线视频 | 夜夜夜| 免费a级毛片在线看 | 国产黄色精品视频 | 永久免费的啪啪网站免费观看浪潮 | 在线黄网站 | 国产精品第54页 | 精品福利在线视频 | 在线综合色| 在线观看免费91 | 91在线精品秘密一区二区 | 国产成人精品免费在线观看 | 99久久精品国产亚洲 | 国产黄色在线看 |