【WEB】表单基础知识实例DEMO
来源:互联网 发布:河南省网络教研室 编辑:程序博客网 时间:2024/06/05 14:41
一.表单
1.阻止表单提交
用处:在表单数据无效不能发送给服务器时,调用该方法。
<body> <form> <input type="email" value="email"/> <input type="pattern" value="pattern"/> <input type="submit" value="form"/> </form></body><script> var form=document.forms[0]; form.addEventListener('submit',function(e){ e?e:window.event; e.preventDefault(); },false)</script>
注:form.submit()方法也可以提交表单,但不会触发submit事件,因此记得在调用此方法前先验证表单数据。
2.防止重复提交表单
解决重复提交办法有两个,在第一次提交后禁用提交按钮,或者利用onsubmit事件处理程序取消后续的表单提交。
var form=document.forms[0]; form.addEventListener('submit',function(e){ e=e?e:window.event; var target=e.target?e.target:e.srcElement; var btn=target.elements["submit-btn"]; btn.disabled=true; },false)
注:每个表单都有elements属性,该属性时表单中所有表单元素的集合。可按照位置和name访问他们.
不能通过onclick事件处理程序来实现这个功能,原因是不同浏览器之间存在“时差”,有的浏览器会在触发表单的submit事件之前触发click事件,有的浏览器则相反。对于先触发click事件的浏览器,意味着会在提交发生之前急用按钮,结果永远都不会提交表单。
3.通过表单事件改变用户界面
所有的表单字段支持三个事件:blur,change,focus
change事件:用于验证用户在字段中输入的数据。
focus和blur:修改/恢复文本框颜色。
var input=form.elements[0]; input.addEventListener('focus',function(e){ e=e?e:window.event; var target=e.target?e.target:e.srcElement; target.style.backgroundColor='yellow'; },false) input.addEventListener('blur',function(e){ e=e?e:window.event; var target=e.target?e.target:e.srcElement; if(/[^\d]/.test(target.value)){ target.style.backgroundColor='red'; }else{ target.style.backgroundColor=''; } },false) input.addEventListener('change',function(e){ e=e?e:window.event; var target=e.target?e.target:e.srcElement; if(/[^\d]/.test(target.value)){ target.style.backgroundColor='green'; }else{ target.style.backgroundColor=''; } },false)
注:关于blur和change事件的关系,并没有严格的规定。
二.文本框脚本
注:不建议使用标准的DOM方法修改文本框,使用target.value
1.选择文本
<body> <form > <input type="email" value="email" name="email" size="25"/> <input type="pattern" value="pattern"/> <textarea rows="25" col="5" name="textbox">initial value</textarea> <input type="submit" id="submit-btn" value="form"/> </form></body><script> var form=document.forms[0]; var textbox=form.elements["textbox"]; textbox.addEventListener('focus',function(e){ e=e?e:window.event; var target=e.target?e.target:e.srcElement; target.select(); },false)</script>
2.取得选择的文本
function getSelectText(textbox){ if(typeof textbox.selectionStart=="number"){ return textbox.value.substring(textbox.selectionStart,textbox.selectionEnd); } }
3.选择部分文本
form.elements["textbox"].setSelectionRange(0,2)
4.HTML5约束验证API
(1)必填字段
<input type="text" value="email" name="email" size="25" required />
监测浏览器是否支持required
var isRequiredSupported="required" in document.createElement("input")
(2)其他输入类型
<input type="email"/><input type="url"/>
(3)输入模式
<input type="text" pattern="\d+" name="count">
注:以上都不能阻止用户输入无效的文本(书上这么写的,但是实测是可以阻止的)
(4)检测有效性
checkValidity()方法可以检测表单中某个字段是否有效。
属性validity也可以,包含一系列子属性
- patternMismatch
- valid
- valueMissing
- typeMismatch
三.选择框脚本
1.选择选项
selectbox.options[1].selected=true
注:单选情况下,将select设置为false对单选框没有影响
selected属性作用主要是确定用户选择了选择框的哪一项,要去的选中的项,可以循环遍历选项集合
function getSelectedOptions(){ var result=[] var option=null for(i=0;i<options.length;i++){ option=options[i]; if(option.selected){ result.push(option)} } return result;}
2.添加选项
var option=new Option("option text","option value");selectbox.add(option)
3.移除选项
selectbox.remove()//每次只移除第一个选项
*附知识点
共有的表单字段属性:
disabled;form;name;readOnly(只读),tabIndex,type(可写),value(只读)
共有的表单字段方法:focus()和blur()
HEMLSelectElment属性和方法:
add()
remove()
selectedIndex
options
value
HTMLOptionElement属性和方法
index
selected
text
value
- 【WEB】表单基础知识实例DEMO
- Web基础知识五之Html表单标记
- Web前端(表单)基础知识笔记(3)
- 【应用篇】Activiti外置表单实例demo(四)
- 【应用篇】Activiti外置表单实例demo(四)
- form表单提交三种方式,demo实例详解
- jQuery ajax提交Form表单实例(附demo源码)
- JAVA Web防止表单重复提交实例
- JAVA Web防止表单重复提交实例
- JAVA Web防止表单重复提交实例
- JAVA Web防止表单重复提交实例
- WEB表格和表单学习实例
- php经典实例-笔记3-web与表单
- 表单实例
- html表单:HTML表单基础知识
- JQuery表单验证DEMO
- jquery 表单验证demo
- Angularjs表单验证demo
- Netty实战读书笔记(第五章(一))
- mqtt+activemq用发布订阅实现点对点推送
- 数据分析的统计学基础--方差分析
- 根据xml的标签解析文件的Demo
- http协议接口调用,basic验证
- 【WEB】表单基础知识实例DEMO
- Java实现-Huffman编码与解码
- 内核链表
- LINUX 版本信息查看(全)
- 用with open完成python读写
- 读懂深度学习
- JS工具类
- httpclient 发送post请求
- ncl笔记