博客列表 >jquery 事件 与ajax

jquery 事件 与ajax

晴天
晴天原创
2020年06月03日 11:46:40933浏览

jQuery 事件与 Ajax

1. 事件

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <title>事件</title>
  7. <script src="jquery-3.5.1.js"></script>
  8. <style>
  9. form {
  10. width: 200px;
  11. display: grid;
  12. gap: 10px;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <p>User Login:</p>
  18. <form>
  19. <input type="text" placeholder="UserName" autofocus />
  20. <input type="password" placeholder="Password" />
  21. <button>Submit</button>
  22. </form>
  23. </body>
  24. </html>
  25. <script>
  26. // 目标:监听邮箱输入框 当输入框失去焦点时验证值是否存在 给出提示
  27. // 先禁用掉提交
  28. $("form").submit(function (ev) {
  29. ev.preventDefault();
  30. });
  31. // 拿到输入框
  32. var user = $("input[type=text]");
  33. // 失去焦点事件
  34. user.blur(function () {
  35. var tips = "";
  36. // 用户名列表
  37. var users = ["php", "admin"];
  38. // 非空验证
  39. if ($(this).val().length === 0) {
  40. tips = "用户名不能为空";
  41. $(this).focus();
  42. } else if (users.indexOf($(this).val()) === -1) {
  43. tips = "用户名不存在";
  44. $(this).focus();
  45. } else {
  46. tips = "验证通过";
  47. $("input[type=password]").focus();
  48. }
  49. // 将信息添加到输入框后面
  50. // 判断当前是否存在span
  51. if ($(this).next().get(0).tagName !== "SPAN") {
  52. $("<span>").html(tips).css("color", "red").insertAfter($(this));
  53. }
  54. // 键盘按下删除span
  55. user.keydown(function () {
  56. $(this).next("span").remove();
  57. });
  58. });
  59. </script>

2. ajax

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  6. <script src="jquery-3.5.1.js"></script>
  7. <title>Ajax</title>
  8. <style>
  9. body {
  10. display: grid;
  11. gap: 15px;
  12. }
  13. button {
  14. text-align: left;
  15. height: 26px;
  16. }
  17. button:hover {
  18. background-color: #ddd;
  19. cursor: pointer;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <button type="button">1. load()请求数据</button>
  25. <button type="button">2. $.get()请求数据</button>
  26. <button type="button">3. $.post()请求数据</button>
  27. <button type="button">4. $.getJSON()请求JSON数据</button>
  28. <button type="button">5. $.ajax()请求数据</button>
  29. <button type="button">6. $.ajax()-jsonp-跨域请求数据1</button>
  30. <button type="button">7. $.ajax()-jsonp-跨域请求数据2</button>
  31. </body>
  32. </html>
  33. <script>
  34. var cl = console.log.bind(console);
  35. // 1.load() 加载html片段
  36. $("button:first-of-type").click(function () {
  37. $(this).after("<div>").next().load("nav.html");
  38. });
  39. // 2.$.get()
  40. $("button:nth-of-type(2)").click(function (ev) {
  41. $.get("users.php", { id: 2 }, function (data) {
  42. $(ev.target).after("<div>").next().html(data);
  43. });
  44. });
  45. // 3.$.post()
  46. $("button:nth-of-type(3)").click(function (ev) {
  47. $.post("users.php", { id: 2 }, function (data) {
  48. $(ev.target).after("<div>").next().html(data);
  49. });
  50. });
  51. // 4.$.getJSON() 请求json数据 接口返回的大多是json
  52. $("button:nth-of-type(4)").click(function (ev) {
  53. $.getJSON("users.php?id=2", function (data) {
  54. // 返回的就是js对象 不用转换
  55. cl(data);
  56. });
  57. });
  58. // 5.$.ajax
  59. // $.ajax({
  60. // // 请求类型
  61. // type: "GET",
  62. // // 请求的URL
  63. // url: url,
  64. // // 发送的数据
  65. // data: data,
  66. // // 期望服务器返回/响应的数据类型
  67. // dataType: "json",
  68. // // 成功时的回调函数
  69. // success: callback,
  70. // });
  71. $("button:nth-of-type(5)").click(function (ev) {
  72. $.ajax({
  73. type: "get",
  74. url: "users.php?id=2",
  75. success: function (data) {
  76. $(ev.target).after("<div>").next().html(data);
  77. },
  78. });
  79. });
  80. // 6. $.ajax()-jsonp-1:跨域请求
  81. $("button:nth-of-type(6)").click(function (ev) {
  82. $.ajax({
  83. type: "GET",
  84. url: "http://php.edu/0522/test2.php?jsonp=?&id=1",
  85. dataType: "jsonp",
  86. success: function (data) {
  87. cl(data);
  88. var data = JSON.parse(data);
  89. cl(data);
  90. var data =
  91. "<p>" +
  92. data.title +
  93. "</p><p>" +
  94. data.user.name +
  95. ", 邮箱:" +
  96. data.user.email +
  97. "</p>";
  98. $(ev.target).after("<div>").next().html(data);
  99. },
  100. });
  101. });
  102. // 7. $.ajax()-jsonp-2:跨域请求
  103. $("button:last-of-type").click(function (ev) {
  104. $.ajax({
  105. type: "GET",
  106. url: "http://php.edu/0522/test2.php?jsonp=?&id=2",
  107. dataType: "jsonp",
  108. jsonpCallback: "handle",
  109. });
  110. });
  111. function handle(data) {
  112. cl(data);
  113. var data = JSON.parse(data);
  114. cl(data);
  115. var data =
  116. "<p>" +
  117. data.title +
  118. "</p><p>" +
  119. data.user.name +
  120. ", 邮箱:" +
  121. data.user.email +
  122. "</p>";
  123. $("button:last-of-type").after("<div>").next().html(data);
  124. }
  125. </script>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议