JavaScript学习笔记(九) 

  • 一.jQuery Validate验证框架
    • 1.引入相关插件路径
    • 2. 修改一些规则
    • 3. 自定义验证规则
    • 4.异步验证
    • 整体代码
  • 二.layer弹出层
    • 1.引入相关插件路径
    • 2.警告窗口
    • 3.询问窗口
    • 提示窗口
    • 4.iframe窗口(加载页面)(重要)

一.jQuery Validate验证框架

1.引入相关插件路径

https://www.runoob.com/jquery/jquery-plugin-validate.html里引入相关插件路径

 <!--引入jQuery库--><script src="http://static.runoob.com/assets/jquery-validation-1.14.0/lib/jquery.js"></script><!--前端验证插件--><script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/jquery.validate.min.js"></script><!--默认的验证错误信息显示内容(中文)--><script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/localization/messages_zh.js"></script>

2. 修改一些规则

 <script>$(function (){$("#myform01").validate({/*设置KEY必须是name属性对应的值*///设置校验规则rules: {account: {required: true,//字段必须填写minlength: 5,//字段最小长度为5maxlength: 10,//字段最大长度为10},},//修改提示信息messages:{account: {required: "账号不能为空",minlength: "你输入的字符小于5个",maxlength: "你输入的字符大于10个",},},//修改触发验证方式onfocusout:false,//失去焦点时不验证onkeyup:false//按键时不验证});})</script>

3. 自定义验证规则

jQuery.validator.addMethod("validAccount", function(value, element) {let reg = /^[A-Za-z]\w+$/;return this.optional(element) || (reg.test(value));//验证}, "账号必须以字母开头");//提示信息

4.异步验证

servlet:

package com.yu.web;import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.ArrayList;
import java.util.List;@WebServlet("/check/account")
public class AccountCheckServlet extends HttpServlet {@Overrideprotected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {String account = request.getParameter("username");List<String> list = new ArrayList<>();list.add("admin123");list.add("super123");list.add("love123");//设置响应回去的内容response.setContentType("text/html;charset=UTF-8");PrintWriter out = response.getWriter();if (list.contains(account)){out.print(false);}else{out.print(true);}out.close();}
}
  remote:{//异步验证url:"check/account",type:"get",dataType:"json",data:{username:function (){return $.trim(($("#myAccount").val()));},},}

整体代码

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>插件验证</title></head><body><form action="http://www.baidu.com" id="myform01">账号:<input type="text" id="myAccount" name="account" required autofocus>手机:<input type="text" id="myPhone" name="phone" required autofocus><input type="submit" value="自动提交"></form><!--引入jQuery库--><script src="http://static.runoob.com/assets/jquery-validation-1.14.0/lib/jquery.js"></script><!--前端验证插件--><script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/jquery.validate.min.js"></script><!--默认的验证错误信息显示内容(中文)--><script src="http://static.runoob.com/assets/jquery-validation-1.14.0/dist/localization/messages_zh.js"></script><script>$(function (){/*自定义验证规则*/jQuery.validator.addMethod("validAccount", function(value, element) {let reg = /^[A-Za-z]\w+$/;return this.optional(element) || (reg.test(value));//验证}, "账号必须以字母开头");//提示信息$("#myform01").validate({/*设置KEY必须是name属性对应的值*///设置校验规则rules: {account: {required: true,//字段必须填写minlength: 5,//字段最小长度为5maxlength: 10,//字段最大长度为10validAccount:true,//启动自定义的验证规则remote:{//异步验证url:"check/account",type:"get",dataType:"json",data:{username:function (){return $.trim(($("#myAccount").val()));},},}},},//修改提示信息messages:{account: {required: "账号不能为空",minlength: "你输入的字符小于5个",maxlength: "你输入的字符大于10个",remote:"该账号已经被注册"//异步验证提示信息},},//修改触发验证方式onfocusout:false,//失去焦点时不验证onkeyup:false,//按键时不验证submitHandler:function(form){alert("阻塞作用:可以在提交之前还能做一些事情");//比如return false不使用表单提交//手动设置Ajax提交数据return true;//不能设置false,会阻止提交默认行为}});})</script></body>
</html>

二.layer弹出层

1.引入相关插件路径

学习网址:https://layer.layui.com/

 <script src="resources/jquery-1.12.4.min.js"></script><script src="resources/layer/layer.js"></script>

2.警告窗口

 $("#btn1").click(function () {/*支持内容中写代码等等*/layer.alert("一叶<strong>遮天</strong>", {//内容,属性,点击yes后触发的行为title: "我是一个小小的警告窗口",//设置标题area: ["500px", "300px"],//设置弹出框大小icon: 3,//设置图标shade: 0.5,//设置遮罩阴影程度(默认值为0.3)closeBtn: 0,//设置关闭键btnAlign: "c",//按钮居中(默认右对齐)time: 3000,//设置三秒后关闭})});

3.询问窗口

$("#btn2").click(function () {/*支持内容中写代码等等*/layer.confirm("目光<strong style=\"color:pink;\">灼灼</strong>", {//内容,属性,点击yes后触发的行为title: "我是一个淡淡的询问窗口",//设置标题btn: ['只因你', '风华绝代', '你好美'],area: ["500px", "300px"],//设置弹出框大小icon: 3,//设置图标shade: 0.5,//设置遮罩阴影程度(默认值为0.3)closeBtn: 0,//设置关闭键btnAlign: "c",//按钮居中(默认右对齐)}, function (index) {console.log(this, index);layer.close(index);//点击后使弹窗关闭});});

提示窗口

$("#btn3").click(function () {/*支持内容中写代码等等*/layer.msg("目光<strong style=\"color:pink;\">灼灼</strong>");//默认几秒后自动关闭});

4.iframe窗口(加载页面)(重要)

layer提供了5种层类型。可传入的值有:0(信息框,默认)1(页面层)2(iframe层)3(加载层)4(tips层)

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>Title</title></head><body><a href="javascript:;" id="btn1">警告窗口</a><br/><a href="javascript:;" id="btn2">询问窗口</a><br/><a href="javascript:;" id="btn3">提示窗口</a><br/><a href="javascript:;" id="btn4">iframe窗口-加载页面(重要)</a><br/><script src="resources/jquery-1.12.4.min.js"></script><script src="resources/layer/layer.js"></script><script>$(function (){$("#btn1").click(function (){/*支持内容中写代码等等*/layer.alert("一叶<strong>遮天</strong>",{//内容,属性,点击yes后触发的行为title : "我是一个小小的警告窗口",//设置标题area : ["500px","300px"],//设置弹出框大小icon :3,//设置图标shade : 0.5,//设置遮罩阴影程度(默认值为0.3)closeBtn : 0,//设置关闭键btnAlign : "c",//按钮居中(默认右对齐)time : 3000,//设置三秒后关闭})});$("#btn2").click(function (){/*支持内容中写代码等等*/layer.confirm("目光<strong style=\"color:pink;\">灼灼</strong>",{title : "我是一个淡淡的询问窗口",btn : ['只因你','风华绝代','你好美'],//设置按钮内容area : ["500px","300px"],icon :3,shade : 0.5,closeBtn : 0,btnAlign : "c",//按钮居中(默认右对齐)},function (index){console.log(this,index);layer.close(index);//点击后使弹窗关闭});});$("#btn3").click(function (){layer.msg()("目光<strong style=\"color:pink;\">灼灼</strong>");});$("#btn4").click(function (){layer.open({title : "页面加载",type : 2,//2代表iframe层area : ['600px','500px'],maxmain : true,//支持最大最小框content : "check/account",//当type=2时,内容来源设置完整路径end: function(index, layero){if(confirm('确定要关闭么')){ //只有当点击confirm框的确定时,该层才会关闭layer.close(index)}return false;}});});});</script></body>
</html>

JavaScript学习笔记(九)(验证框架,layer弹出层)相关推荐

  1. 学习使用layer弹出层关闭问题

    学习使用layer弹出层关闭问题 //当你想关闭当前页的某个层时 var index = layer.open(); var index = layer.alert(); var index = la ...

  2. layui内置模块(layer弹出层)

    前面我们已经对layui前端框架的页面元素进行了简单的学习,但是作为一个可用的程序,仅仅是长的好看,并没有那个什么用:在好看的同时还需要实用和酷炫,实用就需要实现我们方便的和后端进行数据交互,酷炫就是 ...

  3. layer弹出层闪退_jQuery使用Layer弹出层插件闪退问题

    一.前言 巨坑,基础没学好,导致找了一个下午的问题,终于被我发现了.说多都是泪,记录下来,以后有人遇到这个错误可以参考下 做项目期间做了几个页面,需要用到弹出层,为了方便使用到了Layer的插件,然后 ...

  4. layer弹出层扩展自定义样式

    layer是一款近年来备受青睐的web弹层组件,她具备全方位的解决方案,致力于服务各水平段的开发人员,您的页面会轻松地拥有丰富友好的操作体验. 官网 http://layer.layui.com/ l ...

  5. php layer弹出层更改背景,详解Layer弹出层样式

    前言:学习layer弹出框,之前项目是用bootstrap模态框,后来改用layer弹出框,在文章的后面,我会分享项目的一些代码(我自己写的). layer至今仍作为layui的代表作,她的受众广泛并 ...

  6. Layer 弹出层组件

    Layer 弹出层组件 一.Layer是什么? 用于实现网页中的各种弹出层交互, 如 Alert/Confirm/Message/Tips/Page/Iframe/Loading/Prompt/Tab ...

  7. layer弹出层闪退_layer弹出层详解

    1.layer 弹出层iframe页面关闭自身 function closeFrame() { var index = parent.layer.getFrameIndex(window.name); ...

  8. html5相对父元素定位,layer弹出层设置相对父级元素定位

    layer弹出层默认是相对body固定定位的,可是项目中一般需要相对某个盒子相对定位,下面是个加载弹层例子: var loadIndex = layer.open({ type: 3, //3 表示加 ...

  9. layer文件ajax上传,layer弹出层数据传输到content里面

    在项目中使用layer弹出层的时候,遇到一个问题,就是利用ajax请求后台数据成功时,调用layer弹出层(iframe),如何把数据传到iframe里面去? 经过百度,发现,使用js把数据拼接起来, ...

最新文章

  1. 2.1.Linux系统下启动MySQL的命令及相关知识
  2. 对docker容器的增加或减少进行报警
  3. 算法------数组---------删除重复元素
  4. Linux下oracle数据库spfile参数配置文件丢失问题解决,“ORA-32001: write to SPFILE requested but no SPFILE is in use“问题处理
  5. boost::fusion::filter_if用法的测试程序
  6. 南京php培训班哪家,南京PHP培训中心哪家比较专业
  7. 天津理工大学c语言上机报告3,天津理工大学-c语言上机报告4.pdf
  8. CF56E Domino Principle 树状数组 + 简单dp
  9. oracle定义变量sql赋值_ORACLE获取SQL绑定变量值的方法总结
  10. postgis java_Postgresql结合postgis使用java的JDBC连接
  11. Maven ,命令行中,字符编码 设置
  12. SEO怎么做?从排名和关键字优化入手
  13. 使用wePE工具安装纯净版windows10详细教程
  14. PageHelper获取数据总条数
  15. 计算机软件毕业论文周记,毕业论文写作周记范文共12周
  16. Linux网络知识--DHCP服务(理论部分)
  17. APP用户界面设计六基本原则
  18. uni-app使用canvas将两张图片合成一张图片
  19. NVP2650和NVP2650D的区别是什么?
  20. 盘一盘 Python 系列 - SciPy

热门文章

  1. 成为一名专业Web渗透工程师难吗?
  2. DW写的页面,在浏览者查看器中出现大量其他代码
  3. 工业相机内外触发以及控制频闪灯
  4. SpringBoot国际化失败的原因,切换中英文无效
  5. 后渗透利用sethc留下后门
  6. springboot+景区停车管理系统 毕业设计-附源码221603
  7. 测量小助手——典型用户及使用场景
  8. 数据结构与算法:用链表实现无序列表。
  9. 大地坐标与地心坐标相互转换 (WGS84,西安80,北京54, China200)C++
  10. git修改已提交的信息