博客
关于我
JavaScript中的DOM对象和表单验证(详解+全代码示例!)
阅读量:154 次
发布时间:2019-02-27

本文共 2769 字,大约阅读时间需要 9 分钟。

HTML DOM与表单验证教程

HTML DOM概述

DOM(Document Object Model,文档对象模型)是描述网页内容的结构化接口。通过DOM,可以用JavaScript对HTML文档中的各个标签进行操作和控制。对于熟悉软件开发的人员而言,DOM可以被视为网页的API,使得JavaScript能够方便地操作和控制网页中的各个元素。

HTML DOM的使用

HTML DOM查找元素

在JavaScript中,为了操作HTML标签,首先需要通过document对象找到目标标签。document对象表示整个HTML文档,已经加载好的网页会自动生成这个对象。

  • 通过id查找元素

    使用document.getElementById("id")方法,可以通过标签的id属性快速找到对应的标签对象。例如:

    var obj = document.getElementById("bt");

    这个方法返回的是一个单一的标签对象。

  • 通过标签名查找元素

    使用document.getElementsByTagName("标签名")方法,可以通过标签的标签名返回所有匹配的标签对象集合。例如:

    var objs = document.getElementsByTagName("input");

    需要注意的是,返回的是一个HTMLCollection对象,无法直接调用方法,必须使用数组方式操作。例如:

    objs[0].style.backgroundColor = "red";
  • 通过类名查找元素

    使用document.getElementsByClassName("类名")方法,可以通过标签的class属性返回所有匹配的标签对象集合。例如:

    var objs = document.getElementsByClassName("c1");

    返回的是一个HTMLCollection对象,同样需要使用数组方式操作。

  • 通过name属性查找元素

    使用document.getElementsByName("name")方法,可以通过标签的name属性返回所有匹配的标签对象集合。例如:

    var objs = document.getElementsByName("socre");
  • HTML DOM改变HTML

    改变HTML标签属性

    通过document.getElementById("id").属性 = "属性值"的方式,可以改变标签的属性。例如,通过document.body.bgColor可以改变页面的背景颜色。

    修改HTML标签的内容

    HTML标签的内容可以通过innerHTMLinnerText属性来修改。innerHTML属性返回并修改标签内的全部 HTML 内容,包括子标签和文本;innerText属性仅返回并修改标签内的文本内容,不包括子标签。

  • 使用innerHTML修改内容

    例如:

    var div1 = document.getElementById("div1");div1.innerHTML = "修改后的内容";
  • 使用innerText修改内容

    例如:

    var div2 = document.getElementById("div2");div2.innerText = div1.innerText;
  • HTML DOM对事件的操作

    HTML DOM使JavaScript能够响应HTML事件。通过绑定事件处理函数,可以实现对页面交互的操作。

  • 绑定事件处理函数

    使用obj.事件名称 =函数的方式可以将函数与事件绑定。例如:

    document.getElementById("btn").onclick = function() {    console.log("按钮被点击");};
  • 事件处理函数的执行顺序

    确保<script>标签放在需要处理事件的标签之前,或者使用onload事件来确保标签加载后再执行绑定函数。

  • 表单验证

    为什么要进行表单验证?

    表单验证可以减少后端服务器的负担,避免不正确数据的传输。通过在前端对用户输入的数据进行验证,可以提高用户体验和数据安全性。

    表单验证的示例

  • onsubmit事件
    使用form.onsubmit事件来验证表单数据。例如:
    form.onsubmit = function() {    var account = document.getElementById("accountId").value;    var pw = document.getElementById("pwId").value;    if (account.length === 0) {        alert("请输入用户名");        return false;    }    if (pw.length === 0 || pw.length > 16) {        alert("密码越界");        return false;    }    return true;};
  • 正则表达式

    正则表达式概述

    正则表达式(Regular Expression,简称RegExp)是一种强大的字符串匹配工具,用于描述字符模式。通过正则表达式可以对输入数据进行验证,确保数据格式符合要求。

    正则表达式符号

  • ^:匹配字符串的开头。
  • $:匹配字符串的结尾。
  • *:前面的字符零次或多次出现。
  • +:前面的字符一次或多次出现。
  • {n}:前面的字符恰好出现n次。
  • {n,m}:前面的字符至少出现n次,最多出现m次。
  • .:匹配任意单个字符。
  • \d:匹配数字字符(等价于 [0-9])。
  • \D:匹配非数字字符(等价于 [^0-9])。
  • [a-z]:匹配小写字母a到z。
  • [A-Z]:匹配大写字母A到Z。
  • [^a-z]:匹配非小写字母字符。
  • x|y:匹配x或y。
  • \w:匹配字母、数字和下划线(等价于 [A-Z,a-z,0-9,_])。
  • \W:匹配非字母、非数字和非下划线字符(等价于 [^A-Z,a-z,0-9,_])。
  • [^\u4e00-\u9fa5]:匹配非中文字符。
  • 正则表达式示例

  • 验证是否为数字:
    var reg = /^\d+$/;
  • 验证是否为小写字母:
    var reg = /^[a-z]+$/;
  • 验证是否为中文字符:
    var reg = /^[\u4e00-\u9fa5]{2,10}$/;
  • 验证是否为邮箱格式:
    var reg = /^[a-zA-Z0-9_.+-]+@([a-zA-Z0-9-]+)\.([a-zA-Z0-9-]+)\.[a-zA-Z0-9-]+$/;
  • 通过以上方法,可以在表单输入中添加验证功能,确保数据的准确性和合法性。

    转载地址:http://ecfd.baihongyu.com/

    你可能感兴趣的文章
    Nginx的是什么?干什么用的?
    查看>>
    Nginx访问控制_登陆权限的控制(http_auth_basic_module)
    查看>>
    nginx负载均衡器处理session共享的几种方法(转)
    查看>>
    nginx负载均衡的5种策略(转载)
    查看>>
    nginx负载均衡的五种算法
    查看>>
    Nginx运维与实战(二)-Https配置
    查看>>
    Nginx配置ssl实现https
    查看>>
    Nginx配置TCP代理指南
    查看>>
    Nginx配置——不记录指定文件类型日志
    查看>>
    Nginx配置代理解决本地html进行ajax请求接口跨域问题
    查看>>
    Nginx配置参数中文说明
    查看>>
    Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
    查看>>
    Nginx配置如何一键生成
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
    查看>>
    NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
    查看>>
    NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
    查看>>
    Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
    查看>>
    NIFI大数据进阶_离线同步MySql数据到HDFS_02_实际操作_splitjson处理器_puthdfs处理器_querydatabasetable处理器---大数据之Nifi工作笔记0030
    查看>>