JavaScript学习笔记(第四天)
来源:互联网 发布:淘宝网客服投诉电话 编辑:程序博客网 时间:2024/05/22 01:58
前面几章都是对如何操作DOM节点的,今天学习一下js操作表单。
对表单form的操作其实跟DOM类似,毕竟form也是html的节点。html的表单输入控件主要包括:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>操作表单</title></head><body> <form> <input type="text"> <br> <input type="password"> <br> <input type="radio"> <br> <input type="checkbox"> <br> <input type="hidden"> <br> <select> <option>语文</option> <option>数学</option> <option>英语</option> </select> </form></body></html>
主要是文本框,单选框,密码框,复选框,下拉列表,隐藏文本等
获取form表单的值:
步骤,获取input节点的引用,然后调用value获取输入的值。
举例:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>操作表单</title></head><body> <form> <input type="text" oninput="aa(this)"> <br> <input type="password"> <br> <input type="radio"> <br> <input type="checkbox"> <br> <input type="hidden"> <br> <select> <option>语文</option> <option>数学</option> <option>英语</option> </select> </form><script> function aa(x) { x.blur(); alert(x.value); }</script></body></html>
监听文本框的输入,然后让其失去焦点触发,打印form节点输入值。
设置输入值:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>操作表单</title></head><body> <form> <input type="text" id="txt"> <input type="text" id="txt2" value="你好,世界"> <br> </form><script> var x=document.getElementById('txt') x.value="hello world";</script></body></html>
跟设置DOM内容一样,先获取节点引用,调用value然后赋值即可。
提交表单:
方式一,通过元素的submit()方法提交一个表单
举例:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>form表单提交</title></head><body> <form id="form1"> <input type="text" id="t1"> <input type="submit" onclick="aa()"> </form><script type="text/javascript"> function aa() { var x=document.getElementById('form1'); x.submit(); }</script></body></html>
方式二,通过响应form的onSubmit事件
举例:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>form提交方式二</title></head><body> <form id="form1"> <input type="text" id="t1"> <input type="submit"> </form><script type="text/javascript"> function checkSubmit() { var x=document.getElementById('form1'); //对输入数据进行验证或者修改操作 return false; }</script></body></html>
如果return true,即可提交,反之,则不能提交,里面可以进行对输入数据的校验或者修改操作。
但是提交表单的时候,为了保证信息安全,用户信息不能明文提交,所以要用到加密。
例如:
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>form提交方式二</title></head><body> <form id="form1" onsubmit="return checkSubmit()" method="post"> <input type="text" id="t1" name="name"> <br> <input type="password" id="p1" name="pwd"> <br> <input type="submit"> </form><script type="text/javascript"> function checkSubmit() { var x=document.getElementById('p1'); x.value=toMD5(x.value); return true; }</script></body></html>
但是这样加密会有个问题,就是将密码转换会MD5之后会产生32位的星号在输入框,因为MD5就是32位的,加密就相当于设置form的输入值。
故而用来实现。
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>form提交方式二</title></head><body><form id="form1" onsubmit="return checkSubmit()" method="post"> <input type="text" id="t1" name="name"> <br> <input type="password" id="p1"> <br> <input type="hidden" name="pwd" id="p2"></form><button onclick="checkSubmit()">submitt</button><script type="text/javascript"> function checkSubmit() { var x=document.getElementById('p1'); var y=document.getElementById('p2'); y.value=toMD5(x.value); return true; }</script></body></html>
这里有三个input,第三个类型为hidden,就隐藏文本的意思,由于密码框没有name,故而不会被提交,将密码框的输入值经过处理赋值给隐藏文本提交,从而确保了数据安全问题。
下面我们来敲一个验证输入内容并提交的例子,
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>form提交方式二</title></head><body><form id="form1" method="post"> <p> 用户名: <input type="text" id="t1" name="name"></p> <br> <p> 密码: <input type="password" id="p1"></p> <br> <p>重复密码:<input type="password" id="p2"></p></form><button onclick="checkSubmit()">submitt</button><script type="text/javascript"> function checkSubmit() { var username_rule = /^[0-9a-zA-Z]{3,10}$/; var password_rule = /^\w{6,20}$/; var t = document.getElementById('t1').value; var x = document.getElementById('p1').value; var y = document.getElementById('p2').value; if (t.match(username_rule)) { }else { alert('用户名必须是3-10位英文字母或数字'); return false; } if(x.match(password_rule)){ }else { alert('口令必须是6-20位'); return false; } if(y!=x){ alert('两次口令输入不一致'); return false }else { } return true; }</script></body></html>
文件上传:
文件上传的from控件是
<input type="file" formenctype="multipart/form-data">
当表单form包含file时,表单的enctype一定要是multipart/form-data,method一定要是post,浏览器才能正确编码并以multipart/form-data上传文件。
js上传中的操作,主要是验证上传文件的格式是否正确,一般上传是由后台来操作的。
今天就到这把
- JavaScript学习笔记(第四天)
- JavaScript学习笔记 第四记
- Javascript学习笔记【第四章】
- JavaScript学习笔记-第四章
- JavaScript高级程序设计-学习笔记1 (第一章--第四章)
- 《JavaScript高级程序设计》学习笔记(第四章)
- 第四天学习笔记
- 第四天学习笔记
- 学习笔记第四天
- JavaScript笔记之第四天
- C程序设计 第四版(谭浩强)-学习笔记-第四天
- hibernate学习笔记第四天(1)
- hibernate学习笔记第四天(2)
- hibernate学习笔记第四天(3)
- Hibernate学习笔记(第四天)
- Struts2学习笔记(第四天)
- Koa2 学习笔记(第四天)
- Android学习笔记: 第四天
- android input 按键分发(inputManager)
- 公司看到的备忘编辑
- python3.5——爬虫实现批量下载图片(正则表达式法和BeautifulSoup第三方库法)
- ShareUtils保存图片
- 微软大楼设计方案 bfs和线段树
- JavaScript学习笔记(第四天)
- python 乘法表
- MQTT,mosquitto,Eclipse Paho
- Spring In Action(六):处理请求中的参数
- 《一言以蔽之,十年架构之路汇成一句话》峰会学习笔记
- Java基础教程5-获取用户输入
- Hadoop中split源码分析
- MD5加密算法(基于JAVA)
- 持续集成(CI)- 解放双手