首页 > 其他分享 >【学习笔记】操作表单

【学习笔记】操作表单

时间:2022-09-26 10:23:10浏览次数:44  
标签:username value 表单 学习 密码 getElementById 笔记 var

操作表单

 

获得表单信息

  • 输入框

    <body>
    <form action="post">
        <p>
            <span>用户名:</span><input type="text" id="username">
        </p>
    </form>
    ​
    <script>
        var username = document.getElementById("username");
        //获得表单输入框的值
        username.value;
        //修改表单输入框的值
        username.value = 'nihao';
    </script>
    </body>

 

  • 单选/多选框

    <body>
    <form action="post">
        <p>
            <span>
                <input type="radio" name="sex" value="man" id="man">男
                <input type="radio" name="sex" value="woman" id="woman">女
            </span>
        </p>
    </form>
    ​
    <script>
        var man_radio = document.getElementById('man');
        var woan_radio = document.getElementById('woman');
    </script>

    对于表单的单选框或多选框来说,man_radio.value只能获取到该选项的value,而不能去判断当前选中按钮的value。

    所以我们要使用man.checked 来判断该按钮是否被选中,选中则返回true,没有选中返回false

    image-20220926090213283

    可以通过对checked赋值,来操作单选框的选中情况。

 

 

提交表单

提交表单时,可以进行一些验证,就是用onsubmit来绑定提交检测的函数,通过这个函数的返回值来判断是要提交表单还是要拦截表单。

< form onsubmit = "return aaa()" > < /form>

<body>
<form action="#" method="post" onsubmit="return check()">
    <p>
        <span>用户名:</span><input type="text" id="username" name="username">
    </p>
    <p>
        <span>密码:</span><input type="password" id="password" name="password">
    </p>
    <button type="submit">提交</button>
</form>
<script>
    function check() {
        var username = document.getElementById('username');
​
        //如果用户输入的用户名长度小于4,就拦截表单
        if (username.value.length<4){
            alert("用户名长度小于4");
            return false;
        }
        return true;
    }
</script>
</body>

 

MD5密码加密

如果我们没有给密码加密,那么在提交表单时,在请求中可以看到用户输入的密码,如下图:

image-20220926095249375

 

我们可以用MD5工具类给密码加密

<body>
<form action="#" method="post" onsubmit="return check()">
    <p>
        <span>用户名:</span><input type="text" id="username" name="username">
    </p>
    <p>
        <span>密码:</span><input type="password" id="password" name="password">
    </p>
    <button type="submit">提交</button>
</form>
<script>
    function check() {
        var username = document.getElementById('username');
        var password = document.getElementById('password');
​
        password.value = md5(password.value);
        return true;
​
    }
</script>
</body>

使用这种方法还有一个弊端就是,当你提交表单的一瞬间,密码框中会把加密的密码长度暴露出来,如下:

image-20220926100410427

所以我们可以把要提交的密码框给隐藏起来,显示出来的密码框作为中间的媒介,这时提交的密码就是我们隐藏的密码框。

<form action="#" method="post" onsubmit="return check()">
    <p>
        <span>用户名:</span><input type="text" id="username" name="username">
    </p>
    <p>
        <span>密码:</span><input type="password" id="password">
        
        <!--把name给隐藏的密码框-->
        <input type="hidden" id="md5password" name="password"> 
    </p>
​
    <button type="submit">提交</button>
</form>
<script>
    function check() {
        var username = document.getElementById('username');
        var password = document.getElementById('password');
        var md5password = document.getElementById('md5password');
        
        //把加密后的密码赋值给隐藏的密码框
        md5password.value = md5(password.value);
        return true;
​
    }
</script>

 

MD5加密的js

<script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js"></script>

标签:username,value,表单,学习,密码,getElementById,笔记,var
From: https://www.cnblogs.com/wztblogs/p/16729974.html

相关文章

  • Vue面试题22:说一说Vue实例在挂载过程中发生了什么 (总结自B站up主‘前端杨村长’视频,仅
    挂载过程中完成了两件最重要的事:初始化(App实例的创建、数据状态的初始化、选项的处理、建立响应式数据等)建立更新机制,把这两件事说清除即可回答范例1.挂载过程指的是ap......
  • c++笔记
    数据类型的意义在于给变量分配合适的内存空间,防止资源浪费#define定义常量一、整型:short、int、long、longlong    超出数值将会在另一端显示(衔尾蛇)sizeof(数......
  • 关于Typaro的MarkDown的基本学习
    MarkDown学习标题一级标题:#+标题二级标题:##+标题至多有六级标题字体粗体两边都加两个星号斜体两边都加一个星号斜体加粗两边都加三个星号删除线两边都加两个......
  • 《程序员的 38 堂成长课》29-38 读书笔记
    如果一件事情必须做很多次,那么就写一个脚本来帮你做。尽早并经常向客户展示产品,这样你会很快发现是否在创建错误的产品。不要长时间加班,弄得自己筋疲力尽,这会让人们一......
  • Flask 学习-78.Flask-SQLAlchemy 一对多关系
    前言一个人有多个收件地址,这就是一对多关系一对多(one-to-many)关系关系使用relationship()函数表示。然而外键必须用类sqlalchemy.schema.ForeignKey来单独声明:c......
  • Jenkins 20220925笔记本3
                                                 ......
  • 秀真的学习日记:学Java的第一天
    秀真的学习日记:学Java的第一天快捷键ctrl+A=全选ctrl+X=剪切ctrl+C=复制ctrl+Z=撤销ctrl+V=粘贴ctrl+S=......
  • 在强化学习算法性能测试时使用训练好的模型运行游戏,此时如何控制实时游戏画面的帧数
    问题:在强化学习算法性能测试时使用训练好的模型运行游戏,此时如何控制实时游戏画面的帧数?  ========================================  看到很多训练好的模型......
  • Wireshark网络分析笔记
    Wireshark简介Wireshark是使用最广泛的一款「开源抓包软件」,常用来检测网络问题、攻击溯源、或者分析底层通信机制。它使用WinPCAP作为接口,直接与网卡进行数据报文交换。......
  • Bootstrap 笔记
    BootstrapBootstrap是预编写的CSS和JavaScript代码段(chunk)的集合。引入任何Web应用,都可以通过添加如下代码到HTML的head标签中来引入Bootstrap。<linkre......