当前位置: 首页 > news >正文

JavaScript-操作表单和前端加密

1.获得和设置表单的值

表单是什么?form-----DOM树

  • 文本框----text
  • 下拉框----select
  • 单选框----radio
  • 多选框----checkbox
  • 隐藏域----hidden
  • 密码框----password

表单的目的:提交信息
我们获得要提交的信息

写个表单

1)得到输入框的值

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="post">
    <span>用户名:</span><input type="text"id="username">
</form>
<script>
    var input_text = document.getElementById('username');

</script>
</body>
</html>

2)修改输入框的值

3)对于单选框和多选框,查看返回结果:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="post">
    <p>
        <span>用户名:</span><input type="text"id="username">
    </p>
    <p>
        <span>性别:</span>
        <input type="radio" name="sex" value="man" id="boy">男
        <input type="radio" name="sex" value="woman" id="girl">女
    </p>

</form>
<script>
    var input_text = document.getElementById('username');
    var boy_radio = document.getElementById('boy');
    var girl_radio = document.getElementById('girl');

    //对于单选框,多选框等固定的值,用value只能取到当前的值

</script>
</body>
</html>

2.表单的提交验证

简单测试表单的提交:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<form action="post">
    <p>
        <span>用户名:</span><input type="text" id="username">
    </p>
    <p>
        <span>密码:</span><input type="password" id="password">
    </p>
<!--    绑定事件 onclick 被点击-->
    <button type="button" onclick="aaa()">提交</button>
</form>
<script>
    function aaa() {
        var uname = document.getElementById('username');
        var pwd = document.getElementById('password');
        console.log(uname.value);
        console.log(pwd.value);
    }
</script>
</body>
</html>

3.MD5加密算法

md5为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。md5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的md5信息摘要。

MD5加密工具类:https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--MD5加密工具类-->
    <script src = "https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js">

    </script>
</head>
<body>
<form action="#" method="post">
    <p>
        <span>用户名:</span><input type="text" id="username">
    </p>
    <p>
        <span>密码:</span><input type="password" id="password">
    </p>
<!--    绑定事件 onclick 被点击-->
    <button type="button" onclick="aaa()">提交</button>
</form>
<script>
    function aaa() {
        var uname = document.getElementById('username');
        var pwd = document.getElementById('password');
        console.log(uname.value);
        //MD5加密
        pwd.value=md5(pwd);
        console.log(pwd.value);
    }
</script>
</body>
</html>

按钮绑定提交事件:

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--MD5加密工具类-->
    <script src = "https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js">

    </script>
</head>
<body>
<form action="#" method="post">
    <p>
        <span>用户名:</span><input type="text" id="username" name="username">
    </p>
    <p>
        <span>密码:</span><input type="password" id="input-password">
    </p>
    <input type="hidden" id="md5-password" name="password">
<!--    绑定事件 onclick 被点击-->
    <button type="submit" onclick="aaa()">提交</button>
</form>
<script>
    function aaa() {
        var uname = document.getElementById('username');
        var pwd = document.getElementById('input-password');
        var md5pwd = document.getElementById('md5-password');

        md5pwd.value=md5(pwd.value);
        return false;
    }
</script>
</body>
</html>

表单绑定提交事件

需要通过οnsubmit= 绑定一个提交检测的函数 :true false

再将这个结果返回给表单,使用onsubmit接收

<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <!--MD5加密工具类-->
    <script src = "https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js">

    </script>
</head>
<body>
<form action="https://www.baidu.com/" method="post" onsubmit="return aaa()">
    <p>
        <span>用户名:</span><input type="text" id="username" name="username">
    </p>
    <p>
        <span>密码:</span><input type="password" id="input-password">
    </p>
    <input type="hidden" id="md5-password" name="password">
<!--    绑定事件 onclick 被点击-->
    <button type="submit">提交</button>
</form>
<script>
    function aaa() {
        alert(1);
        var uname = document.getElementById('username');
        var pwd = document.getElementById('input-password');
        var md5pwd = document.getElementById('md5-password');

        md5pwd.value=md5(pwd.value);
        return false;
    }
</script>
</body>
</html>

相关文章:

  • 使用disruptor队列实现本地异步消费
  • 在Windows中自动压缩备份文件和目录的脚本
  • 猿创征文|Java计算【生日工具类】看这篇就够了
  • 网络-电脑网络突然变成球形, 网络不可用
  • 848. 有向图的拓扑序列(BFS应用)
  • 物联网开发笔记(8)- 使用Wokwi仿真ESP32开发板实现模数转换和脉宽调制
  • 古怪的Lucene中文分词方案 —— CJKAnalyzer
  • SPDK vhost-user结合SPDK NVMe-oF RDMA性能调优
  • mysql 创建函数
  • 支持十亿级密态数据、低代码,蚂蚁集团发布隐语开放平台
  • 关于kafka常见名词解释,你了解多少?
  • 吴恩达深度学习笔记(四)——深度学习的实践层面
  • KNN-KG论文学习笔记
  • DOM与BOM与Echarts
  • 13c++呵呵老师【pawn移动组件与碰撞】
  • SegmentFault for Android 3.0 发布
  • [deviceone开发]-do_Webview的基本示例
  • Android 初级面试者拾遗(前台界面篇)之 Activity 和 Fragment
  • JAVA多线程机制解析-volatilesynchronized
  • java中的hashCode
  • MySQL主从复制读写分离及奇怪的问题
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • 从零搭建Koa2 Server
  • 将回调地狱按在地上摩擦的Promise
  • 时间复杂度与空间复杂度分析
  • 听说你叫Java(二)–Servlet请求
  • 为视图添加丝滑的水波纹
  • 智能合约开发环境搭建及Hello World合约
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​软考-高级-系统架构设计师教程(清华第2版)【第15章 面向服务架构设计理论与实践(P527~554)-思维导图】​
  • "无招胜有招"nbsp;史上最全的互…
  • #include到底该写在哪
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (C++20) consteval立即函数
  • (ZT)出版业改革:该死的死,该生的生
  • (备忘)Java Map 遍历
  • (初研) Sentence-embedding fine-tune notebook
  • (二)正点原子I.MX6ULL u-boot移植
  • (附源码)ssm本科教学合格评估管理系统 毕业设计 180916
  • (论文阅读40-45)图像描述1
  • (一)Neo4j下载安装以及初次使用
  • (一)python发送HTTP 请求的两种方式(get和post )
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)德国人的记事本
  • (轉)JSON.stringify 语法实例讲解
  • (最完美)小米手机6X的Usb调试模式在哪里打开的流程
  • * CIL library *(* CIL module *) : error LNK2005: _DllMain@12 already defined in mfcs120u.lib(dllmodu
  • .axf 转化 .bin文件 的方法
  • .net 4.0 A potentially dangerous Request.Form value was detected from the client 的解决方案
  • .NET/C# 检测电脑上安装的 .NET Framework 的版本
  • .net6 webapi log4net完整配置使用流程
  • .Net下的签名与混淆
  • .NET正则基础之——正则委托
  • @SpringBootApplication 包含的三个注解及其含义
  • []使用 Tortoise SVN 创建 Externals 外部引用目录