1、事件

某些组件被执行了某些操作后,触发某些代码的执行
组件:html中的元素:Web_JS基础! - 图1


某些操作:对组件的动作:鼠标单击,鼠标双击等
某些代码:具有的功能代码:比如单击图片更换为另一张图片的功能代码
事件的绑定:
时间的绑定就是将html中的元素如何进行跟某一些操作(事件)进行连接起来
鼠标单击事件:onclick事件
元素的获取:
let 变量名 = document.getElementById(“id值”);
绑定事件:

  1. 直接绑定在html标签上:
  2. <body>
  3. <button id="btn" onclick="btn()">按钮</button>
  4. <script type="text/javascript">
  5. function btn() {
  6. alert("按钮被点击!");
  7. }
  8. </script>
  9. </body>
  10. 获取元素对象,使用匿名函数进行绑定:
  11. <body>
  12. <button id="btn">按钮</button>
  13. <script type="text/javascript">
  14. document.getElementById("btn").onclick = function () {
  15. alert("按钮被点击!");
  16. }
  17. </script>
  18. </body>

2、BOM

Browser Object Model 浏览器对象模型,将浏览器的各个组成部分封装起来组成对象
window:窗口对象(也是前端对象的始对象,所以使用Window的方法时可省略)
window.alert(“普通弹框,带确定按钮”);
window.confirm(“可确定和取消弹框”);
window.prompt(“可输入弹框”);
Navigator:浏览器对象
Screen:显示器屏幕对象
History:历史记录对象
History.go():跳转到指定顺利的页面
History.back():返回上一页
History.forword():进入下一页
Location:地址栏对象
Location.href = “http://www.baidu.com":进入指定页
定时器
setTimeout(函数/表达式,毫秒值):在指定的毫秒数后调用函数或者计算表达式,只执行一次,有返回值,用于取消定时器
clearTimeout():取消setTimeout()方法
setInterval(函数/表达式,毫秒值):按照指定的周期(毫秒值)来调用函数或这计算表达式
clearInterval():取消setInterval()方法

  1. <body>
  2. <div align="center">
  3. <div id="time"></div>
  4. <button>暂停时间更新</button>
  5. <button>恢复时间更新</button>
  6. </div>
  7. <script type="text/javascript">
  8. var date = new Date();
  9. var s = date.toLocaleString(); //2021/6/3上午11:35:34 年月日时分秒
  10. var s1 = date.toLocaleTimeString(); //上午11:35:34 时分秒
  11. var s2 = date.toLocaleDateString(); //2021/6/3 年月日
  12. console.log(s);
  13. setTimeout(getTime);
  14. var interval = setInterval(getTime,1000); //每一秒更新一次时间
  15. function getTime(){
  16. var timeText = document.getElementById("time");
  17. timeText.innerHTML = new Date().toLocaleString() ;
  18. }
  19. var btn = document.getElementsByTagName("button")[0];
  20. btn.onclick= function () {
  21. clearInterval(interval);
  22. }
  23. var btn1 = document.getElementsByTagName("button")[1];
  24. btn1.onclick = function () {
  25. interval = setInterval(getTime,1000);
  26. }
  27. </script>

Location对象:
reload():重新加载当前文档,刷新
href:色湖之或者返回完整的URL

  1. <body>
  2. <button>获取本页的URL</button>
  3. <button>刷新本页</button>
  4. <button>跳转至百度</button>
  5. <script>
  6. var btns = document.getElementsByTagName("button");
  7. btns[0].onclick = function () {
  8. alert(location.href);
  9. }
  10. btns[1].onclick = function () {
  11. location.reload();
  12. }
  13. btns[2].onclick = function () {
  14. location.href = "http://www.baidu.com";
  15. }
  16. </script>
  17. </body>

3、DOM

Document Object Model :文档对象模型
把所有页面标签抽象成为一个Document对象,我们可以使用js动态修改标签及属性内容

  1. 1、获取元素:
  2. ==es6之前获取方式==
  3. document.getElementById() 根据id属性值获取元素对象。id属性值一般唯一
  4. document.getElementsByTagName() 根据元素名称获取元素对象们。返回值是一个数组
  5. document.getElementsByClassName() 根据Class属性值获取元素对象们。返回值是一个数组
  6. document.getElementsByName() 根据name属性值获取元素对象们。返回值是一个数组
  7. ==es6获取方式==
  8. document.querySelector(id选择器) 根据id选择器,获取元素
  9. document.querySelectorAll(css选择器) 根据css选择器获取元素,返回是一个数组
  10. 2、操作内容:
  11. element.innerText 获取或者修改元素的纯文本内容
  12. element.innerHTML 获取或者修改元素的html内容
  13. element.outerHTML 获取或者修改包含自身的html内容
  14. 总结:
  15. 1. innerText 获取的是纯文本 innerHTML获取的是所有html内容
  16. 2. innerText 设置到页面中的是纯文本 innerHTML设置到页面中的html会展示出外观效果
  17. 3. innerHTML不包含自身 outerHTML包含自身的html内容
  18. 3、操作属性:
  19. setAttribute(属性名,属性值) 给元素设置自定义属性(了解)
  20. getAttribute(属性名) 获取元素的自定义属性值(了解)
  21. removeAttribute(属性名) 移除元素的自定义属性(了解)
  22. 4、操作样式:
  23. 设置一个css样式
  24. js对象.style.样式名 = '样式值';
  25. 批量设置css样式
  26. js对象.style.cssText='css样式字符串'
  27. 通过class设置样式【这个灵活性较大】
  28. js对象.className='class选择器名'
  29. 5、操作元素(标签)
  30. document.createElement(标签名称):创建一个标签对象
  31. 父标签对象.appendChild(子标签对象):给父标签添加一个子标签

4、正则表达式

方式一:let rege = new RegExp(”正则表达式”);
方式二:let rege = /正则表达式/;
相关方法:
正则对象.test(字符串):符合正则规则就返回true,否则false
字符串对象.match(正则对象):返回字符串那种符合正则规则的内容

  1. 单个字符:
  2. [a](字符a)[ab][a-zA-Z0-9_]
  3. 元字符:
  4. \d:单个数字字符[0-9]
  5. \w:单个单词字符[a-zA-Z0-9_]
  6. 量词:
  7. ?:表示出现0次或多次
  8. *:表示出现0次或多此
  9. +:出现一次或多次
  10. {m,n}:表示最多有n个,最少有m
  11. 如果m缺省:最多n
  12. 如果n缺省:最少m
  13. {n}:正好n
  14. 开始符号:^
  15. 结束符号:$
  16. 手机号的正则表达式:
  17. regePhone = /^1[0-9]{10}$/
  18. 邮箱的正则表达式:
  19. regeEmail = /^[a-zA-Z0-9]{6,}@[a-zA-Z0-9]{2,}\.(com|cn|edu)$/
  20. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  21. <body>
  22. <input type="text" name = "phone">
  23. <input type="text" name = "email">
  24. <button id="btn">按钮</button>
  25. <script type="text/javascript">
  26. var regePhone = /^1[0-9]{10}$/;
  27. var regeEmail = /^[a-zA-Z0-9]{6,}@[a-zA-Z0-9]{2,}\.(com|cn|edu) $/;
  28. document.getElementById("btn").onclick = function () {
  29. var phones = document.getElementsByTagName("input");
  30. console.log(phones[0].value);
  31. if (regePhone.test(phones[0].value)){
  32. alert("手机号合法!")
  33. }else{
  34. alert("手机号不合法!")
  35. }
  36. }
  37. </script>
  38. </body>
  39. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  40. <body>
  41. <input type="text" name = "phone">
  42. <input type="text" name = "email">
  43. <button id="btn">按钮</button>
  44. <script type="text/javascript">
  45. var regePhone = /^1[0-9]{10}$/;
  46. var regeEmail = /^[0-9a-zA-Z]{6,}@[0-9a-zA-Z]{2,}\.(com|cn|edu)$/;
  47. document.getElementById("btn").onclick = function () {
  48. var phones = document.getElementsByTagName("input");
  49. console.log(phones[1].value);
  50. if (regeEmail.test(phones[1].value)){
  51. alert("邮箱合法!")
  52. }else{
  53. alert("邮箱不合法!")
  54. }
  55. }
  56. </script>
  57. </body>

5、时间监听机制

某些组件被执行了某些操作后,触发某些代码的执行
事件:某些操作,如:单击,双击。键盘按下,鼠标移动
事件源:组件:如按钮,文本输入框
监听器:代码
注册监听:将事件,事件源,监听器结合在一起,当事件源发生了某个事件,则触发执行某个监听器代码

点击事件:

onclick :单击事件
ondbclick:双击事件

焦点事件:

onblur:失去焦点
onfocus:元素获得焦点

加载事件:

onload:页面加载完成后立即发生

鼠标事件:

onmousedown:鼠标按钮被按下
onmouseup:鼠标按键被松开
onmousemove:鼠标被移动
onmouseover:鼠标移到某个元素之上
onmouseout:鼠标从某个元素移开

键盘事件:

onkeydown:某个键盘按键被按下
onkeyup:某个键盘按键被松开
onokeypress:某个键盘按键被按下并松开

改变事件:

onchange:域的内容被改变

表单事件:

onsubmit:提交按钮被点击

6、一些Demo

隔行换色:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. </head>
  7. <style>
  8. .ji{
  9. background-color: #cccccc;
  10. }
  11. .ou{
  12. background-color: aliceblue;
  13. }
  14. .over{
  15. background-color: beige;
  16. }
  17. </style>
  18. <!--
  19. 隔行变色:
  20. 1. 表格奇偶行颜色不同
  21. 2. 鼠标移入颜色高亮
  22. -->
  23. <body>
  24. <table id="tab1" border="1" width="800" align="center" cellspacing="0" cellpadding="0">
  25. <tr>
  26. <th width="100px"><input type="checkbox">全/<input type="checkbox">反选</th>
  27. <th>分类ID</th>
  28. <th>分类名称</th>
  29. <th>分类描述</th>
  30. <th>操作</th>
  31. </tr>
  32. <tr align="center">
  33. <td><input type="checkbox" class="checkbox"></td>
  34. <td>1</td>
  35. <td>手机数码</td>
  36. <td>手机数码类商品</td>
  37. <td><a href="">修改</a>|<a href="">删除</a></td>
  38. </tr>
  39. <tr align="center">
  40. <td><input type="checkbox" class="checkbox"></td>
  41. <td>2</td>
  42. <td>电脑办公</td>
  43. <td>电脑办公类商品</td>
  44. <td><a href="">修改</a>|<a href="">删除</a></td>
  45. </tr>
  46. <tr align="center">
  47. <td><input type="checkbox" class="checkbox"></td>
  48. <td>3</td>
  49. <td>鞋靴箱包</td>
  50. <td>鞋靴箱包类商品</td>
  51. <td><a href="">修改</a>|<a href="">删除</a></td>
  52. </tr>
  53. <tr align="center">
  54. <td><input type="checkbox" class="checkbox"></td>
  55. <td>4</td>
  56. <td>家居饰品</td>
  57. <td>家居饰品类商品</td>
  58. <td><a href="">修改</a>|<a href="">删除</a></td>
  59. </tr>
  60. <tr align="center">
  61. <td><input type="checkbox" class="checkbox"></td>
  62. <td>5</td>
  63. <td>牛奶制品</td>
  64. <td>牛奶制品类商品</td>
  65. <td><a href="">修改</a>|<a href="">删除</a></td>
  66. </tr>
  67. <tr align="center">
  68. <td><input type="checkbox" class="checkbox"></td>
  69. <td>6</td>
  70. <td>大豆制品</td>
  71. <td>大豆制品类商品</td>
  72. <td><a href="">修改</a>|<a href="">删除</a></td>
  73. </tr>
  74. <tr align="center">
  75. <td><input type="checkbox" class="checkbox"></td>
  76. <td>7</td>
  77. <td>海参制品</td>
  78. <td>海参制品类商品</td>
  79. <td><a href="">修改</a>|<a href="">删除</a></td>
  80. </tr>
  81. <tr align="center">
  82. <td><input type="checkbox" class="checkbox"></td>
  83. <td>8</td>
  84. <td>羊绒制品</td>
  85. <td>羊绒制品类商品</td>
  86. <td><a href="">修改</a>|<a href="">删除</a></td>
  87. </tr>
  88. <tr align="center">
  89. <td><input type="checkbox" class="checkbox"></td>
  90. <td>9</td>
  91. <td>海洋产品</td>
  92. <td>海洋产品类商品</td>
  93. <td><a href="">修改</a>|<a href="">删除</a></td>
  94. </tr>
  95. <tr align="center">
  96. <td><input type="checkbox" class="checkbox"></td>
  97. <td>10</td>
  98. <td>奢侈用品</td>
  99. <td>奢侈用品类商品</td>
  100. <td><a href="">修改</a>|<a href="">删除</a></td>
  101. </tr>
  102. <tr align="center">
  103. <td><input type="checkbox" class="checkbox"></td>
  104. <td>4</td>
  105. <td>家居饰品</td>
  106. <td>家居饰品类商品</td>
  107. <td><a href="">修改</a>|<a href="">删除</a></td>
  108. </tr>
  109. </table>
  110. <script>
  111. //获取表格所有的行
  112. var trs = document.getElementsByTagName("tr");
  113. console.log(trs.length);
  114. for (var i= 0;i<trs.length;i++){
  115. if (i % 2 == 0) {
  116. trs[i].className = "ji";
  117. }else{
  118. trs[i].className = "ou";
  119. }
  120. }
  121. //多选
  122. var inputs = document.getElementsByTagName("input");
  123. //console.log(inputs[0].checked);
  124. inputs[0].onclick = function () { //绑定全选的点击事件
  125. if (inputs[0].checked) { //若全选被点亮
  126. for (var i = 2 ;i<inputs.length;i++) {
  127. inputs[i].checked = "true"; //则所有的都选上
  128. trs[i-1].className = "over";
  129. }
  130. }
  131. }
  132. inputs[1].onclick = function () { //绑定反选的点击事件
  133. if (inputs[1].checked) { //若反选被点亮
  134. inputs[0].checked = false;
  135. for (var i = 2 ;i<inputs.length;i++) {
  136. if (inputs[i].checked){ //则所有被选的都取消
  137. inputs[i].checked = false;
  138. if (i % 2 == 0) {
  139. trs[i-1].className = "ji";
  140. }else{
  141. trs[i-1].className = "ou";
  142. }
  143. }else{
  144. inputs[i].checked = true; //所有没被选的都选中
  145. trs[i-1].className = "over";
  146. }
  147. }
  148. }
  149. }
  150. </script>
  151. </body>
  152. </html>

商品全选全不选:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>全选全不选</title>
  6. </head>
  7. <body>
  8. <!--
  9. 商品全选
  10. 1. 全选 点击全选按钮,所有复选框都被选中
  11. 2. 反选 点击反选按钮,所有复选框状态取反
  12. -->
  13. <button id="btn1">1. 全选</button>
  14. <button id="btn2">2. 反选</button>
  15. <br/>
  16. <input type="checkbox">电脑
  17. <input type="checkbox">手机
  18. <input type="checkbox">汽车
  19. <input type="checkbox">别墅
  20. <input type="checkbox" checked="checked">笔记本
  21. <script>
  22. var btns = document.getElementsByTagName("button");
  23. var ipts = document.getElementsByTagName("input");
  24. //全选
  25. btns[0].onclick = function () {
  26. console.log(this);
  27. //遍历获取input
  28. for (var i = 0 ; i<ipts.length;i++){
  29. //所有的input的checked属性值都为true
  30. ipts[i].checked = "true";
  31. }
  32. }
  33. //反选
  34. btns[1].onclick = function () {
  35. for (var i = 0 ; i<ipts.length;i++){
  36. //遍历获取input的checked属性取反赋值
  37. ipts[i].checked = !ipts[i].checked;
  38. }
  39. }
  40. </script>
  41. </body>
  42. </html>

省市联动:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>省市联动</title>
  6. <style type="text/css">
  7. .regist_bg {
  8. width: 100%;
  9. height: 681px;
  10. padding-top: 40px;
  11. background-image: url(../img/logo_bg.jpg);
  12. }
  13. .regist {
  14. border: 7px inset #ccc;
  15. width: 600px;
  16. padding: 40px 0;
  17. padding-left: 80px;
  18. background-color: #fff;
  19. margin-left: 25%;
  20. border-radius: 10px;
  21. }
  22. input[type="submit"] {
  23. background-color: aliceblue;
  24. width: 100px;
  25. height: 35px;
  26. color: red;
  27. cursor: pointer;
  28. border-radius: 5px;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div class="regist_bg">
  34. <div class="regist">
  35. <form action="#">
  36. <table width="600" height="350px">
  37. <tr>
  38. <td colspan="3">
  39. <font color="#3164af">会员注册</font> USER REGISTER
  40. </td>
  41. </tr>
  42. <tr>
  43. <td align="right">用户名</td>
  44. <td colspan="2"><input id="loginnameId" type="text" name="loginname" size="60"/></td>
  45. </tr>
  46. <tr>
  47. <td align="right">密码</td>
  48. <td colspan="2"><input id="loginpwdId" type="password" name="loginpwd" size="60"/></td>
  49. </tr>
  50. <tr>
  51. <td align="right">确认密码</td>
  52. <td colspan="2"><input id="reloginpwdId" type="password" name="reloginpwd" size="60"/></td>
  53. </tr>
  54. <tr>
  55. <td align="right">Email</td>
  56. <td colspan="2"><input id="emailId" type="text" name="email" size="60"/></td>
  57. </tr>
  58. <tr>
  59. <td align="right">姓名</td>
  60. <td colspan="2"><input name="text" name="username" size="60"/></td>
  61. </tr>
  62. <tr>
  63. <td align="right">性别</td>
  64. <td colspan="2">
  65. <input type="radio" name="gender" value="男" checked="checked"/>男
  66. <input type="radio" name="gender" value="女"/>女
  67. </td>
  68. </tr>
  69. <tr>
  70. <td align="right">电话号码</td>
  71. <td colspan="2"><input type="text" name="phone" size="60"/></td>
  72. </tr>
  73. <tr>
  74. <td align="right">所在地</td>
  75. <td colspan="3">
  76. <select id="provinceId" style="width:150px">
  77. <option value="">----请-选-择-省----</option>
  78. </select>
  79. <select id="cityId" style="width:150px">
  80. <option value="">----请-选-择-市----</option>
  81. </select>
  82. </td>
  83. </tr>
  84. <tr>
  85. <td width="80" align="right">验证码</td>
  86. <td width="100"><input type="text" name="verifyCode"/></td>
  87. <td><img src="../img/checkMa.png"/></td>
  88. </tr>
  89. <tr>
  90. <td></td>
  91. <td colspan="2">
  92. <input type="submit" value="注册"/>
  93. </td>
  94. </tr>
  95. </table>
  96. </form>
  97. </div>
  98. </div>
  99. <!--
  100. 省市级联
  101. 1. 页面加载完成后自动装载省数据
  102. 2. 当选中省时,装载该省的市数据
  103. -->
  104. <script>
  105. var arrsheng = ['河南省','河北省'];
  106. var citys = [['郑州市','开封市','周口市'],['廊坊市','石家庄市','衡水市']];
  107. var province = document.getElementById('provinceId');//获取省的下拉框
  108. var city = document.getElementById('cityId'); //获取市的下拉框
  109. //1、页面加载时自动装载省数据
  110. window.onload =function () {
  111. //循环省,填充省到下拉列表中
  112. for (var i = 0; i < arrsheng.length; i++) {
  113. province.innerHTML += "<option value=''>"+arrsheng[i]+"</option>"
  114. }
  115. }
  116. //2、点击省时,装载该省的市数据
  117. province.onclick =function () { //给省下拉框绑定点击事件
  118. if (this.selectedIndex != 0) { //判断确定点击的不是下拉列表的第一个元素
  119. city.length = 0; //清空市下拉框中的元素
  120. city.innerHTML = "<option value=''>----请-选-择-市----</option>" //给市下拉框添加第一个元素
  121. for (var j = 0; j < citys.length; j++) { //循环添加点击省的市内容到市下拉框
  122. city.innerHTML += "<option value=''>"+citys[(this.selectedIndex-1)][j]+"</option>"
  123. }
  124. }else{
  125. city.length = 0; //清空市下拉框中的元素
  126. city.innerHTML = "<option value=''>----请-选-择-市----</option>"
  127. }
  128. }
  129. </script>
  130. </body>
  131. </html>

表单校验:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>表单校验</title>
  6. <!--
  7. 1. 两次密码输入一致
  8. 2. 邮箱格式正确
  9. 3. 手机号格式正确
  10. 4. 提交表单时校验表单项是否合法.
  11. -->
  12. <style type="text/css">
  13. .regist_bg {
  14. width: 100%;
  15. height: 651px;
  16. padding-top: 70px;
  17. background-image: url(../img/logo_bg.jpg);
  18. margin: 0px;
  19. }
  20. .regist {
  21. border: 7px inset #ccc;
  22. width: 700px;
  23. padding: 40px 0;
  24. padding-left: 80px;
  25. background-color: #fff;
  26. margin-left: 25%;
  27. border-radius: 10px;
  28. }
  29. input[type="submit"] {
  30. background-color: aliceblue;
  31. width: 100px;
  32. height: 35px;
  33. color: red;
  34. cursor: pointer;
  35. border-radius: 5px;
  36. }
  37. .warn {
  38. color: red;
  39. font-size: 12px;
  40. display: none;
  41. }
  42. </style>
  43. <!--
  44. 表单校验
  45. 1. 两次密码输入一致
  46. 2. 邮箱格式正确
  47. 3. 手机号格式正确
  48. 4. 提交表单时校验表单项是否合法.
  49. 总结:
  50. form表单的 onsubmit 事件 表单提交之前触发
  51. -->
  52. </head>
  53. <body>
  54. <div class="regist_bg">
  55. <div class="regist">
  56. <form action="#" id="myForm">
  57. <table width="700px" height="350px">
  58. <tr>
  59. <td colspan="3">
  60. <font color="#3164af">会员注册</font> USER REGISTER
  61. </td>
  62. </tr>
  63. <tr>
  64. <td align="right">用户名</td>
  65. <td colspan="2"><input id="loginnameId" type="text" name="loginname" size="50"/>
  66. <span id="loginnamewarn" class="warn">用户名不能为空</span></td>
  67. </tr>
  68. <tr>
  69. <td align="right">密码</td>
  70. <td colspan="2"><input id="pwd1" type="password" name="pwd1" size="50"/></td>
  71. </tr>
  72. <tr>
  73. <td align="right">确认密码</td>
  74. <td colspan="2"><input id="pwd2" type="password" name="pwd2" size="50"/><span
  75. id="pwdwarn" class="warn">密码不一致</span></td>
  76. </tr>
  77. <tr>
  78. <td align="right">Email</td>
  79. <td colspan="2"><input id="email" type="text" name="email" size="50"/>
  80. <span id="emailwarn" class="warn">邮箱格式有误</span>
  81. </td>
  82. </tr>
  83. <tr>
  84. <td align="right">姓名</td>
  85. <td colspan="2"><input name="text" name="username" size="50"/></td>
  86. </tr>
  87. <tr>
  88. <td align="right">性别</td>
  89. <td colspan="2">
  90. <input type="radio" name="gender" value="男" checked="checked"/>男
  91. <input type="radio" name="gender" value="女"/>女
  92. </td>
  93. </tr>
  94. <tr>
  95. <td align="right">电话号码</td>
  96. <td colspan="2"><input id="phone" type="text" name="phone" size="50"/>
  97. <span id="phonewarn" class="warn">手机格式有误</span>
  98. </td>
  99. </tr>
  100. <tr>
  101. <td align="right">所在地</td>
  102. <td colspan="3">
  103. <select id="provinceId" onchange="selectCity(this.value)" style="width:150px">
  104. <option value="">----请-选-择-省----</option>
  105. <option value="0">北京</option>
  106. <option value="1">辽宁</option>
  107. <option value="2">江苏</option>
  108. </select>
  109. <select id="cityId" style="width:150px">
  110. <option>----请-选-择-市----</option>
  111. </select>
  112. </td>
  113. </tr>
  114. <tr>
  115. <td width="80" align="right">验证码</td>
  116. <td width="100"><input type="text" name="verifyCode"/></td>
  117. <td><img src="../img/checkMa.png"/></td>
  118. </tr>
  119. <tr>
  120. <td></td>
  121. <td colspan="2">
  122. <input id="rebtn" type="submit" value="注册"/>
  123. </td>
  124. </tr>
  125. </table>
  126. </form>
  127. </div>
  128. </div>
  129. <script>
  130. //用户名输入框不能为空
  131. //获取用户名输入框
  132. var username = document.getElementById('loginnameId');
  133. //若用户名输入框失去焦点,则调用函数查看是否为空
  134. username.onblur = regeusername;
  135. function regeusername() {
  136. if(username.value == null || username.value == ""){
  137. document.getElementById('loginnamewarn').style.display = "contents";
  138. return false;
  139. }else{
  140. document.getElementById('loginnamewarn').style.display = "none";
  141. return true;
  142. }
  143. }
  144. // 1. 两次密码输入一致
  145. //获取密码输入框内容,进行判断
  146. var pwd1 = document.getElementById('pwd1');
  147. var pwd2 = document.getElementById('pwd2');
  148. //重复密码输入框失去焦点时调用函数
  149. pwd2.onblur = regepwd;
  150. function regepwd() {
  151. if (pwd1.value != pwd2.value) {
  152. document.getElementById('pwdwarn').style.display = "contents";
  153. }else{
  154. document.getElementById('pwdwarn').style.display = "none";
  155. }
  156. return pwd1.value == pwd2.value;
  157. }
  158. // 2. 邮箱格式正确
  159. //获取邮箱框内容,进行判断
  160. var email = document.getElementById('email');
  161. //邮箱输入框失去焦点时调用函数
  162. email.onblur = regeemail;
  163. function regeemail() {
  164. //邮箱验证正则表达式
  165. var regeEmail = /^[0-9a-zA-Z]{6,}@[0-9a-zA-Z]{2,}\.(com|cn|edu)$/;
  166. if (!regeEmail.test(this.value)){
  167. document.getElementById('emailwarn').style.display = "contents";
  168. }else{
  169. document.getElementById('emailwarn').style.display = "none";
  170. }
  171. return regeEmail.test(this.value);
  172. }
  173. // 3. 手机号格式正确
  174. //获取手机号输入框内容,进行判断
  175. var phone = document.getElementById('phone');
  176. //手机号输入框失去焦点时调用函数
  177. phone.onblur = regephone;
  178. function regephone() {
  179. //手机号验证正则表达式
  180. var regePhone = /^1[0-9]{10}$/;
  181. if (!regePhone.test(this.value)){
  182. document.getElementById('phonewarn').style.display = "contents";
  183. }else{
  184. document.getElementById('phonewarn').style.display = "none";
  185. }
  186. return regePhone.test(this.value);
  187. }
  188. // 4. 提交表单时校验表单项是否合法.
  189. document.getElementById('myForm').onsubmit = function () {
  190. return regeemail()&&regephone()&&regepwd()&&regeusername(); //都为true,即提交成功
  191. }
  192. </script>
  193. </body>
  194. </html>

伪轮播图:

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>伪轮播图</title>
  6. <style>
  7. /*大盒子*/
  8. .container{
  9. width:100%;
  10. height: 600px;
  11. background: darkkhaki;
  12. }
  13. /*装图片的盒子*/
  14. .wrap{
  15. position:relative;
  16. width: 900px;
  17. height: 300px;
  18. background: red;
  19. margin-left: 300px;
  20. }
  21. /*图片*/
  22. img{
  23. position: absolute;
  24. width: 100%;
  25. height: 100%;
  26. }
  27. /*按钮*/
  28. .btn{
  29. margin-top: 10px;
  30. height: 30px;
  31. width: 60px;
  32. }
  33. #goup{
  34. float: left;
  35. margin-left: 600px;
  36. }
  37. #gonext{
  38. float: right;
  39. margin-right: 600px;
  40. }
  41. </style>
  42. </head>
  43. <body>
  44. <div class="container">
  45. <div class="wrap">
  46. <img src="../img/desc_banner1.jpg" alt="" title="" id="imgx">
  47. </div>
  48. <button class="btn" id="goup">上一张</button>
  49. <button class="btn" id="gonext">下一张</button>
  50. <script>
  51. var imgs = ['../img/desc_banner1.jpg','../img/desc_banner2.jpg','../img/desc_banner3.jpg']
  52. var index = 0;
  53. var img = document.getElementById('imgx');
  54. var goUp = document.getElementById('goup');
  55. goUp.onclick =goup;
  56. function goup() {
  57. if (0<=index&&index<imgs.length) {
  58. img.src = imgs[index--];
  59. }else{
  60. index = (imgs.length-1);
  61. goup();
  62. }
  63. }
  64. var goNext = document.getElementById('gonext');
  65. goNext.onclick =gonext;
  66. function gonext() {
  67. if (index<imgs.length) {
  68. img.src = imgs[index++];
  69. }else{
  70. index = 0;
  71. gonext();
  72. }
  73. }
  74. var setInterval =setInterval(gonext,5000);
  75. img.onfocus = function () {
  76. clearInterval(setInterval);
  77. }
  78. </script>
  79. </div>
  80. </body>
  81. </html>