JS-操作表单

Posted Si人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JS-操作表单相关的知识,希望对你有一定的参考价值。

操作表单

表单本身也是一个DOM树,使用表单的目的就是为了提交信息

  1. 获得表单

<form action="post">
   <p>
       <span>用户名:</span>
       <input type="text" id="username">
   </p>
   <p>
       <span>性别:</span>
       <input type="radio" name="sex" value="boy" id="men">男
       <input type="radio" name="sex" value="girl" id="women">女
   </p>
</form>
let input_text=document.getElementById(\'username\');
let radio_boy=document.getElementById(\'men\');
let radio_girl=document.getElementById(\'women\');

//获取输入框的值
input_text.value;
//修改输入框内的数值
input_text.value=\'***\';
//对于单选框,复选框这类非固定数值的无法用**.value获取具体的值,需要使用**.checked查看是否呗选中
radio_boy.checked;
//修改这类数值也是用**.checked=\'true\';
radio_boy.checked=\'true\';
  1. 提交表单

直接提交表单,缺点非常明显可以在网页Network中直接查看到密码

<div>
 <form action="#" method="post">
   <p>
     <span>用户名:</span>
     <input type="text" id="username" name="username">
   </p>
   <p>
     <span>密码:</span>
     <input type="password" id="psd" name="password">
   </p>

   <p>
     <button type="button" onclick="aaa()">提交</button>
   </p>
 </form>
</div>

       function aaa(){
         let users = document.getElementById(\'username\');
         let pwd = document.getElementById(\'psd\');
         console.log(users.value);
         console.log(pwd.value);
  };

 

对密码进行加密,依然存在缺点,再提交的一瞬间密码框里的字符会变长。可以直接看出实在哪里进行的加密

<script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js/"> 
function aaa(){
         let users = document.getElementById(\'username\');
         let pwd = document.getElementById(\'psd\');
         console.log(users.value);
         console.log(pwd.value);
       pwd.value=md5(pwd.value);
  };
</script>

 

优化方案,密码框的显示里不会突变,增加了用户的体验,也难以发现实在哪里进行了加密

取消了密码框原有的name属性,添加一个hidden的属性,把真正的密码存放在这里提交

表单和标签里的onclick只需要选择其中之一即可

<div>
 <form action="#" method="post" /*onclick="renturn aaa()"*/>
   <p>
     <span>用户名:</span>
     <input type="text" id="username" name="username">
   </p>
   <p>
     <span>密码:</span>
     <input type="password" id="input_pwd" >
   </p>
      <input type="hidden" id="md5_pwd" name-"password" >

   <p>
     <button type="button" onclick="aaa()">提交</button>
   </p>
 </form>
</div>

<script src="https://cdn.bootcss.com/blueimp-md5/2.10.0/js/md5.min.js/">
function aaa(){
         let users = document.getElementById(\'username\');
         let pwd = document.getElementById(\'input_pwd\');
         let md5pwd = document.getElementById(\'md5_pwd\');
         
       md5pwd.value=md5(pwd.value);
        //这里的return可以校验表单的内容,true就是通过提交,false就是阻止(使用这种方法需要在onclick里面添加返回值return)
        return true;
  };
</script>

 

 

以上是关于JS-操作表单的主要内容,如果未能解决你的问题,请参考以下文章

VSCode自定义代码片段——JS中的面向对象编程

VSCode自定义代码片段9——JS中的面向对象编程

XSS:如何从 C# 中的字符串中删除 JS 片段?

物化表单在 vue.js 组件中不起作用

js代码片段: utils/lcoalStorage/cookie

JS代码片段:一个日期离现在多久了