亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > AJAX > 正文

自己編寫的支持Ajax驗(yàn)證的JS表單驗(yàn)證插件

2024-09-01 08:33:01
字體:
供稿:網(wǎng)友

創(chuàng)建一個(gè)JavaScript表單驗(yàn)證插件,可以說是一個(gè)繁瑣的過程,涉及到初期設(shè)計(jì)、開發(fā)與測試等等環(huán)節(jié)。實(shí)際上一個(gè)優(yōu)秀的程序員不僅是技術(shù)高手,也應(yīng)該是善假于外物的。本文介紹的這個(gè)不錯(cuò)的JavaScript表單驗(yàn)證插件,支持ajax驗(yàn)證,有需要的小伙伴可以參考下

自己編寫了一個(gè)表單驗(yàn)證插件,支持ajax驗(yàn)證,使用起來很簡單。

每個(gè)需要驗(yàn)證的表單元素下面有一個(gè)span標(biāo)簽,這個(gè)標(biāo)簽的class有一個(gè)valid表示需要驗(yàn)證,如果有nullable則表示可為空;rule表示驗(yàn)證規(guī)則,msg表示錯(cuò)誤提示信息;to表示要驗(yàn)證的元素的name值,如果元素是單個(gè)的,to可以不寫。該插件會(huì)遍歷每個(gè)有valid的span標(biāo)簽,找出它前面需要驗(yàn)證的元素,根據(jù)rule驗(yàn)證,如果驗(yàn)證不通過,則顯示邊框?yàn)榧t色,鼠標(biāo)放在元素上時(shí)顯示錯(cuò)誤信息。

驗(yàn)證時(shí)機(jī):1、點(diǎn)擊提交按鈕時(shí)顯式調(diào)用驗(yàn)證方法;2、當(dāng)元素觸發(fā)blur時(shí)驗(yàn)證。

插件代碼:

CSS:

 

 
  1. .failvalid 
  2. border: solid 2px red !important; 

JS:

 

 
  1. /** 
  2. * suxiang 
  3. * 2014年12月22日 
  4. * 驗(yàn)證插件 
  5. */ 
  6.  
  7. SimpoValidate = { 
  8. //驗(yàn)證規(guī)則 
  9. rules: { 
  10. int: /^[1-9]/d*$/, 
  11. number: /^[+-]?/d*/.?/d+$/ 
  12. }, 
  13.  
  14. //初始化 
  15. init: function () { 
  16. $(".valid").each(function () { //遍歷span 
  17. if ($(this)[0].tagName.toLowerCase() == "span") { 
  18. var validSpan = $(this); 
  19. var to = validSpan.attr("to"); 
  20. var target; 
  21. if (to) { 
  22. target = $("input[name='" + to + "'],select[name='" + to + "'],textarea[name='" + to + "']"); 
  23. else { 
  24. var target = validSpan.prev(); 
  25. if (target) { 
  26. target.blur(function () { 
  27. SimpoValidate.validOne(target, validSpan); 
  28. }); 
  29. }); 
  30. }, 
  31.  
  32. //驗(yàn)證全部,驗(yàn)證成功返回true 
  33. valid: function () { 
  34. SimpoValidate.ajaxCheckResult = true
  35. var bl = true
  36.  
  37. $(".valid").each(function () { //遍歷span 
  38. if ($(this)[0].tagName.toLowerCase() == "span") { 
  39. var validSpan = $(this); 
  40. var to = validSpan.attr("to"); 
  41. var target; 
  42. if (to) { 
  43. target = $("input[name='" + to + "'],select[name='" + to + "'],textarea[name='" + to + "']"); 
  44. else { 
  45. target = validSpan.prev(); 
  46. if (target) { 
  47. if (!SimpoValidate.validOne(target, validSpan)) { 
  48. bl = false
  49. }); 
  50.  
  51. return bl && SimpoValidate.ajaxCheckResult; 
  52. }, 
  53.  
  54. //單個(gè)驗(yàn)證,驗(yàn)證成功返回true 
  55. validOne: function (target, validSpan) { 
  56. SimpoValidate.removehilight(target, msg); 
  57.  
  58. var rule = SimpoValidate.getRule(validSpan); 
  59. var msg = validSpan.attr("msg"); 
  60. var nullable = validSpan.attr("class").indexOf("nullable") == -1 ? false : true//是否可為空 
  61. var to = validSpan.attr("to"); 
  62. var ajaxAction = validSpan.attr("ajaxAction"); 
  63.  
  64. if (target) { 
  65. //checkbox或radio 
  66. if (target[0].tagName.toLowerCase() == "input" && target.attr("type") && (target.attr("type").toLowerCase() == "checkbox" || target.attr("type").toLowerCase() == "radio")) { 
  67. var checkedInput = $("input[name='" + to + "']:checked"); 
  68. if (!nullable) { 
  69. if (checkedInput.length == 0) { 
  70. SimpoValidate.hilight(target, msg); 
  71. return false
  72.  
  73. //input或select 
  74. if (target[0].tagName.toLowerCase() == "input" || target[0].tagName.toLowerCase() == "select") { 
  75. var val = target.val(); 
  76. if (!nullable) { 
  77. if ($.trim(val) == "") { 
  78. SimpoValidate.hilight(target, msg); 
  79. return false
  80. else { 
  81. if ($.trim(val) == "") { 
  82. SimpoValidate.removehilight(target, msg); 
  83. return true
  84.  
  85. if (rule) { 
  86. var reg = new RegExp(rule); 
  87. if (!reg.test(val)) { 
  88. SimpoValidate.hilight(target, msg); 
  89. return false
  90.  
  91. if (ajaxAction) { 
  92. SimpoValidate.ajaxCheck(target, val, ajaxAction); 
  93. else if (target[0].tagName.toLowerCase() == "textarea") { 
  94. var val = target.text(); 
  95. if (!nullable) { 
  96. if ($.trim(val) == "") { 
  97. SimpoValidate.hilight(target, msg); 
  98. return false
  99. else { 
  100. if ($.trim(val) == "") { 
  101. SimpoValidate.removehilight(target, msg); 
  102. return true
  103.  
  104. if (rule) { 
  105. var reg = new RegExp(rule); 
  106. if (!reg.test(val)) { 
  107. SimpoValidate.hilight(target, msg); 
  108. return false
  109.  
  110. if (ajaxAction) { 
  111. SimpoValidate.ajaxCheck(target, val, ajaxAction); 
  112.  
  113. return true
  114. }, 
  115.  
  116. ajaxCheckResult: true
  117.  
  118. ajaxCheck: function (target, value, ajaxAction) { 
  119. var targetName = target.attr("name"); 
  120. var data = new Object(); 
  121. data[targetName] = value; 
  122.  
  123. $.ajax({ 
  124. url: ajaxAction, 
  125. type: "POST"
  126. data: data, 
  127. async: false
  128. success: function (data) { 
  129. if (data.data == true) { 
  130. SimpoValidate.removehilight(target); 
  131. else { 
  132. SimpoValidate.ajaxCheckResult = false
  133. SimpoValidate.hilight(target, data.data); 
  134. }); 
  135. }, 
  136.  
  137. //獲取驗(yàn)證規(guī)則 
  138. getRule: function (validSpan) { 
  139. var rule = validSpan.attr("rule"); 
  140. switch ($.trim(rule)) { 
  141. case "int"
  142. return this.rules.int
  143. case "number"
  144. return this.rules.number; 
  145. default
  146. return rule; 
  147. break
  148. }, 
  149.  
  150. //紅邊框及錯(cuò)誤提示 
  151. hilight: function (target, msg) { 
  152. target.addClass("failvalid"); 
  153. target.bind("mouseover"function (e) { 
  154. SimpoValidate.tips(target, msg, e); 
  155. }); 
  156. target.bind("mouseout"function () { 
  157. SimpoValidate.removetips(); 
  158. }); 
  159. }, 
  160.  
  161. //取消紅邊框及錯(cuò)誤提示 
  162. removehilight: function (target) { 
  163. target.unbind("mouseover"); 
  164. target.unbind("mouseout"); 
  165. target.removeClass("failvalid"); 
  166. SimpoValidate.removetips(); 
  167. }, 
  168.  
  169. //顯示提示 
  170. tips: function (target, text, e) { 
  171. var divtipsstyle = "position: absolute; z-index:99999; left: 0; top: 0; background-color: #dceaf2; padding: 3px; border: solid 1px #6dbde4; visibility: hidden; line-height:20px; font-size:12px;"
  172. $("body").append("<div class='div-tips' style='" + divtipsstyle + "'>" + text + "</div>"); 
  173.  
  174. var divtips = $(".div-tips"); 
  175. divtips.css("visibility""visible"); 
  176.  
  177. var top = e.clientY + $(window).scrollTop() - divtips.height() - 18; 
  178. var left = e.clientX; 
  179. divtips.css("top", top); 
  180. divtips.css("left", left); 
  181.  
  182. $(target).mousemove(function (e) { 
  183. var top = e.clientY + $(window).scrollTop() - divtips.height() - 18; 
  184. var left = e.clientX; 
  185. divtips.css("top", top); 
  186. divtips.css("left", left); 
  187. }); 
  188. }, 
  189.  
  190. //移除提示 
  191. removetips: function () { 
  192. $(".div-tips").remove(); 
  193. }; 
  194.  
  195. $(function () { 
  196. SimpoValidate.init(); 
  197. }); 

如何使用:

Edit頁面:

 

 
  1. @using Model.Suya; 
  2. @{ 
  3. ViewBag.Title = "Add"
  4. Layout = "~/Views/Shared/_Layout.cshtml"
  5. @{ 
  6. List<sys_post> postList = (List<sys_post>)ViewData["postList"]; 
  7. sys_post post = (sys_post)ViewData["post"]; 
  8. <script type="text/javascript"
  9. $(function () { 
  10. //部門樹 
  11. $('#dept').combotree({ 
  12. url: 'GetDeptTree'
  13. required: false
  14. checkbox: true
  15. onLoadSuccess: function () { 
  16. $('#dept').combotree('setValue'"@(post.depCode)"); 
  17. }); 
  18.  
  19. //操作結(jié)果 
  20. $("#ifrm").load(function (data) { 
  21. var data = eval("(" + $("#ifrm").contents().find("body").html() + ")"); 
  22. alert(data.msg); 
  23. if (data.ok) back(); 
  24. }); 
  25.  
  26. $("select[name='postLevel']").find("option[value='@(post.postLevel)']").attr("selected""selected"); 
  27. }); 
  28.  
  29. //保存 
  30. function save() { 
  31. if (valid()) { 
  32. $("#frm").submit(); 
  33.  
  34. //驗(yàn)證 
  35. function valid() { 
  36. var dept = $("input[name='dept']"); 
  37. if (!dept.val()) { 
  38. SimpoValidate.hilight(dept.parent(), "請(qǐng)選擇所屬部門"); 
  39. else { 
  40. SimpoValidate.removehilight(dept.parent()); 
  41.  
  42. return SimpoValidate.valid(); 
  43.  
  44. //返回 
  45. function back() { 
  46. parent.$('#ttTab').tabs('select'"崗位管理"); 
  47. var tab = parent.$('#ttTab').tabs('getSelected'); 
  48. tab.find("iframe").contents().find("#btnSearch").click(); 
  49. parent.$("#ttTab").tabs('close''修改崗位信息'); 
  50. </script> 
  51. <div class="tiao"
  52. <input type="button" class="submit_btn" value="保存" onclick="save()" /> 
  53. <input type="button" class="submit_btn" value="返回" onclick="back()" /> 
  54. </div> 
  55. <iframe id="ifrm" name="ifrm" style="display: none;"></iframe> 
  56. <form id="frm" method="post" enctype="multipart/form-data" action="/HR/PostManage/SaveEdit?id=@(post.id)" 
  57. target="ifrm"
  58. <div class="adminMainContent"
  59. <div class="box"
  60. <div class="box-title"
  61. 基礎(chǔ)信息 
  62. </div> 
  63. <div class="box-content"
  64. <table cellpadding="0" cellspacing="0" class="detail" width="100%"
  65. <tr> 
  66. <td class="title"
  67. <span class="mst">*</span>崗位名稱: 
  68. </td> 
  69. <td style="width: 35%;"
  70. <input type="text" class="xinxi_txt" name="postName" value="@post.postName" /> 
  71. <span class="valid" msg="必填,且長度不能超過50" rule="^(.|/n){0,50}$"></span> 
  72. </td> 
  73. <td class="title"
  74. <span class="mst">*</span>崗位編號(hào): 
  75. </td> 
  76. <td style="width: 35%;"
  77. <input type="text" class="xinxi_txt" name="postCode" value="@post.postCode" /> 
  78. <span class="valid" msg="必填,且長度不能超過20" rule="^(.|/n){0,20}$" ajaxaction="/HR/PostManage/AjaxCheckPostCode?id=@post.id"
  79. </span> 
  80. </td> 
  81. </tr> 
  82. <tr> 
  83. <td class="title"
  84. <span class="mst">*</span> 所屬部門: 
  85. </td> 
  86. <td style="width: 35%;"
  87. <input type="text" name="depCode" id="dept" class="easyui-combotree" style="height: 30px;" /> 
  88. </td> 
  89. <td class="title"
  90. <span class="mst">*</span>匯報(bào)對(duì)象: 
  91. </td> 
  92. <td style="width: 35%;"
  93. <select class="xueli" name="reportPostCode" id="agreementType"
  94. <option value="" selected="selected">==請(qǐng)選擇==</option> 
  95. @foreach (sys_post item in postList) 
  96. if (item.postCode == post.reportPostCode) 
  97. <option value="@item.postCode" selected="selected">@item.postName</option> 
  98. else 
  99. <option value="@item.postCode">@item.postName</option> 
  100. </select> 
  101. <span class="valid" msg="請(qǐng)選擇合同分類"
  102. </td> 
  103. </tr> 
  104. <tr> 
  105. <td class="title"
  106. <span class="mst">*</span>崗位級(jí)別: 
  107. </td> 
  108. <td style="width: 35%;"
  109. <select class="xueli" name="postLevel"
  110. <option value="" selected="selected">==請(qǐng)選擇==</option> 
  111. <option value="1">1</option> 
  112. <option value="2">2</option> 
  113. <option value="3">3</option> 
  114. <option value="4">4</option> 
  115. <option value="5">5</option> 
  116. <option value="6">6</option> 
  117. </select> 
  118. <span class="valid" msg="請(qǐng)選擇崗位級(jí)別"
  119. </td> 
  120. <td class="title"
  121. </td> 
  122. <td style="width: 35%;"
  123. </td> 
  124. </tr> 
  125. <tr> 
  126. <td class="title"
  127. <span class="mst">*</span>備注: 
  128. </td> 
  129. <td colspan="3" style="width: 35%;"
  130. <textarea name="remarks" style="width: 500px;">@post.remarks</textarea> 
  131. <span class="valid" msg="長度不得超過500" rule="^(.|/n){0,500}$"></span> 
  132. </td> 
  133. </tr> 
  134. </table> 
  135. </div> 
  136. </div> 
  137. </div> 
  138. </form> 

效果圖:

自己編寫的支持Ajax驗(yàn)證的JS表單驗(yàn)證插件

以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
精品久久久久久久久久久久包黑料| 亚洲免费不卡视频| 国产美女一区视频| 欧美色图天堂| 777午夜精品视频在线播放| 免费日韩av| jizz内谢中国亚洲jizz| 日韩精品日韩在线观看| 欧美精品自拍偷拍动漫精品| 欧美午夜丰满在线18影院| 亚洲综合久久av| 国产精品一二三在| 狠狠色狠狠色合久久伊人| 国产中文av在线| 日韩欧美中文字幕不卡| 日韩久久精品电影| 日韩欧美综合在线视频| 同性恋视频一区| 欧美二级三级| 亚洲黄色成人久久久| sm捆绑调教视频| 日韩电影一二三区| 国产精品成人免费一区久久羞羞| 亚洲性猛交xxxxwww| 91久久嫩草影院一区二区| 久久久久久久999| 欧美三级午夜理伦三级| 怡红院av在线| 久久频这里精品99香蕉| 国产一二三区精品视频| 红桃视频在线观看一区二区| av一本在线| 日本肉体xxxx裸体xxx免费| 一区二区三区四区不卡视频| 一区二区久久久久久| 日韩一级成人av| 精品国产一区二区三区香蕉沈先生| 熟妇高潮一区二区高潮| 日韩人妻无码精品综合区| 欧美刺激脚交jootjob| 国产精品久久久久久久免费看| 国产亚洲精品va在线观看| 国产精品美女一区二区三区| 男人天堂1024| 尤物yw午夜国产精品视频| 欧美日韩国产高清电影| 欧美男男video| 色999日韩自偷自拍美女| 91精品国产综合久久香蕉麻豆| 国产一区在线观| 亚洲裸体俱乐部裸体舞表演av| 久中文字幕一区| 在线免费av片| 欧美一区二区日韩一区二区| 极品白嫩少妇无套内谢| 亚洲人成在线影院| 亚洲欧美激情在线视频| 噜噜噜躁狠狠躁狠狠精品视频| 亚洲网色网站| 亚洲天堂成人| 欧美做受喷浆在线观看| 人妻无码一区二区三区四区| 日本视频在线免费| 久久丁香四色| 精彩视频一区二区三区| 1313精品午夜理伦电影| 免费色片视频| 国产另类ts人妖一区二区| 国产精品理论片在线观看| 激情婷婷丁香| 狠狠色丁香久久婷婷综合_中| 精品捆绑调教一区二区三区| 91精品国产一区二区在线观看| 久草这里只有精品视频| 日韩高清不卡av| 欧美日韩在线一区二区| 欧美日韩一区二区精品| 日韩成人综合网站| 一二三四日本中文字幕| 51国产成人精品午夜福中文下载| 久久社区一区| 欧美三级中文字| 在线精品亚洲| 精品国产人成亚洲区| 小早川怜子一区二区三区| 天天爽夜夜爽视频| 国产精品黄色影片导航在线观看| www一区二区| 精品粉嫩aⅴ一区二区三区四区| 中文.日本.精品| 国产这里有精品| 日韩美女国产精品| 中文字幕在线免费看| 亚洲AV无码片久久精品| 在线观看日本视频| 精品视频在线观看一区| 国产一区二区三区免费在线观看| 在线观看电影av| 亚洲天堂日韩在线| 日韩成人黄色av| 国产日韩精品在线观看| 国产精品极品国产中出| 激情综合五月网| 亚洲国产古装精品网站| 日韩精品――色哟哟| 奇米精品一区二区三区在线观看一| 91麻豆精品国产91久久| 国产精品久久久一区二区三区| 黄色三级视频在线播放| 啦啦啦中文高清在线视频| 成人av三级| 久久久久久一区二区| 最近2019中文字幕在线高清| 精品国产视频在线观看| 国产三级精品在线不卡| 99国产视频| 日韩av午夜| 国产精品久久久久久久电影| 亚洲综合精品在线| 国产白袜脚足j棉袜在线观看| 成人天堂yy6080亚洲高清| 精品国产一区二区三区久久久蜜臀| 在线欧美日韩| 日产精品99久久久久久| 久草在线新视觉| 中文字幕第99页| 啊啊啊一区二区| 亚洲瘦老头同性70tv| 国产精品自拍偷拍视频| 成人免费网站在线观看视频| 狠狠噜噜久久| 国产精品视频xxx| 日韩美女av在线免费观看| 欧美裸体视频| 日韩精品手机在线| 日韩中文av| www.蜜臀av| 你懂的一区二区| 日本黄色一区二区| 国产一级影视| 波多野结衣一区二区三区四区| 97在线观看视频国产| 日韩福利影院| 日韩视频―中文字幕| 亚洲日本一区二区三区在线| 国产在线播放91| 日本午夜精品视频| 三区四区在线视频| 丝袜老师办公室里做好紧好爽| 亚洲福利视频三区| 天堂资源在线视频| 91精品国产综合久久久蜜臀图片| 韩国一区二区三区在线观看| 日韩不卡一二三区| 国产欧美日韩丝袜精品一区| 亚洲色婷婷综合开心网| 日韩精品卡一| 精品人妻人人做人人爽| 91麻豆国产自产在线观看亚洲| 国产综合色精品一区二区三区| 美女极度色诱视频www免费观看| 免费观看性欧美大片无片| 日韩免费毛片| 日本一区二区三级电影在线观看| 伊人久久大香线蕉综合热线| 午夜精品短视频| 国产精品乱子久久久久| 激情综合网婷婷| 欧美亚洲国产一区二区三区| 亚洲欧洲中文| 久久9999久久免费精品国产| 国产乱码精品一区二区三区四区| 欧美一区二区三区四区五区六区| 亚洲视频中文字幕| 国产精品一区亚洲| 国产精品成人99一区无码| 日本久久亚洲电影| 国风产精品一区二区| 一区二区在线观看免费视频| 同性恋视频网站资源| 欧美成人精品欧美一级乱| 警花观音坐莲激情销魂小说| 影音先锋可以看的网站| 久久蜜臀中文字幕| 精品一成人岛国片在线观看| 欧美日韩免费做爰大片| 亚洲精品一二三四五区| jizz在线播放| 欧美性受xxxx免费视频| 91丨九色丨黑人外教| 亚洲av综合色区无码一区爱av| 日韩亚洲国产中文字幕欧美| 人人干人人爱人人爱| 亚洲午夜精品久久久久久久久| 福利视频在线播放| 中文字幕av不卡| 国产亚洲欧美一区| 久久青草国产手机看片福利盒子| 成熟老妇女视频| 亚洲av无码国产精品麻豆天美| 噜噜噜狠狠夜夜躁精品仙踪林| 国产色视频网站| 欧美一区二区三区四区在线观看| 疯狂蹂躏欧美一区二区精品| 国产iv一区二区三区| 欧美日韩国产三区| 校花撩起jk露出白色内裤国产精品| 日本一区免费在线观看| aaa在线播放视频| 欧美日韩国产小视频在线观看| 福利av在线| 中文字幕日韩第一页| 日韩一区二区精品葵司在线| 国产8mav视频| 国产精品毛片无码| a视频免费看| 亚洲天天综合网| 无人日本免费视频| 日本久久综合| 国产电影一区二区三区| 国产精品视频播放| 人妻av中文系列| 香蕉视频亚洲一级| 精品在线一区二区| 哺乳一区二区三区中文视频| 粉嫩av懂色av蜜臀av分享| 9l视频自拍九色9l视频成人| 日韩在线一卡二卡| 99国产精品免费网站| 亚洲精品一区二区在线播放∴| 日本一区免费观看| 久久精品播放| 琪琪久久久久日韩精品| 欧美a免费在线| 欧美日韩一区二区在线观看| 精品国产髙清在线看国产毛片| 日韩精品社区| 欧美videosex性欧美黑吊| 亚洲精品一区二区18漫画| 999久久久久久| 国产在线不卡av| 亚洲免费电影在线观看| 亚洲欧美一区二区三区不卡| 欧美视频亚洲视频| 婷婷色在线播放| 久久深夜福利免费观看| 天天综合色天天综合色hd| 白丝校花扒腿让我c| 99综合精品久久| 怡红院av亚洲一区二区三区h| 久热国产精品| 国产欧美久久久精品免费| 日韩av在线播放不卡| 一区二区精品国产| 在线观看黄色小视频| 欧美激情国产精品日韩| 国产精品二区在线| 九热这里只有精品| 麻豆传媒视频在线| 久久久人成影片免费观看| 国产精品亲子伦对白| 69xx绿帽三人行| 首页欧美精品中文字幕| 美国十次av导航亚洲入口| 91jq激情在线观看| 五十路六十路七十路熟婆| 国产二区三区四区| 天堂√最新版中文在线| 国产伦精品一区二区三区千人斩| 99国产精品久久久久99打野战| 野外性满足hd| 日本道在线观看一区二区| www.4438全国最大| 日韩在线天堂| 国产精品国产三级国产专播品爱网| 亚洲成人精品电影在线观看| 小说区乱图片区| www国产亚洲精品久久网站| 欧美噜噜久久久xxx| wwww在线观看免费视频| 国产精品揄拍一区二区| 92精品国产成人观看免费| 北条麻妃国产九九九精品小说| 欧美激情一区二区三区p站| 视频在线观看免费影院欧美meiju| 亚洲精品在线观看www| 久久久999| 亚洲人成网站色ww在线| 东京干手机福利视频| 一区二区三区午夜视频| 国产精品熟妇一区二区三区四区| 亚洲电影观看| 青青青草网站免费视频在线观看| 久久av免费| 中文字幕在线观| 一区二区三区久久网| 国产精品一区二区在线看| a网站在线观看| 欧美日本在线播放| 日韩一区二区三免费高清在线观看| 亚洲欧洲国产日本综合| 性欧美freehd18| 欧美激情精品久久久久久大尺度| 亚洲激情成人在线| 开心激情综合网| 欧美性受xxxx黑人爽| 99精品国产高清在线观看| 欧美极品jizzhd欧美18| 免费的很黄很污的视频网站| 青青草精品视频在线| 亚洲一区二区在| 天天综合网天天| 国产区视频在线播放| 男人的天堂在线视频免费观看| 国产一级伦理片| 精品国产亚洲一区二区在线观看| 亚洲国产成人av在线| 中文字幕中文乱码欧美一区二区| 大胆日韩av| 影音先锋人妻啪啪av资源网站| 精品免费囯产一区二区三区| 亚洲深深色噜噜狠狠爱网站| 欧美精品国产一区二区| 国产亚洲精品va在线观看| 超级砰砰砰97免费观看最新一期| 一夜七次郎国产精品亚洲| 99久久久精品免费观看国产蜜| 日韩美脚连裤袜丝袜在线|