JavaScript 表单脚本

JavaScript最初的任务就是分担服务器处理表单的责任
HTMLFormElement也有独有的属性和方法

acceptCharset: 服务器能够处理的字符集,等价于HTML中的accept-charset特性
action: 接受请求的URL,等价于HTML中的action
elements: 等价于表单中所有控件的集合
enctype: 请求编码的类型,等价于HTML中enctype特性
length: 控件的数量
method: 要发送给的Http请求的类型
name: 表单的名称
reset(): 重置表单
submit(): 提交表单
target: 发送请求和接收响应的窗口工具

提交表单
只要设置type=submit的input或者button元素即可,只要点击按钮就可以提交表单。这种方式提交表单,浏览器会在将请求发送给服务器之前触发submit事件,这样我们就有机会验证表单数据,并决定表单的数据是否可以提交,阻止这个事件的默认行为 preventDefault(event) 就阻止了事件的默认行为就取消了表单的提交。也可以通过不采用表单中包含提交按钮而通过JavaScript调用submit()事件,但在调用此方法之前需要表单的验证。

重置表单
和提交表单类似 type=reset 或者xxx.reset()

表单字段
elements[index]/elements["nameAtt"] 获取表单的某个字段或者name名为nameAtt的字段
共有表单字段属性
disabled/form/name/readOnly/tabIndex/type/value
避免多次提交,在提交后将提交按钮的disabled属性设置true
共有表单字段方法
focus()/blur() 只是将浏览器的焦点设置到表单字段,也就是激活表单字段
共有表单字段事件
blur/change/focus 字段失去焦点,失去焦点值发生变化,字段获得焦点

文本框脚本
一种是input元素,另一种是textarea多行文本type=text,通过size属性设置文本框中显示的 字符数,value 特性为文本框中的值maxlength 文本框输入的最大字符数

选择文本select() 方法,只要用户选择了一个字母(不必释放鼠标,就会触发select事件)
过滤输入: 在响应文本框中的插入字符的keypress事件的时候,可以通过阻止事件的默认行为来屏蔽此类字符,极端情况下可以屏蔽所有的按键操作
操作剪贴板: HTML 5 将剪贴板事件纳入规范beforecopy/copy/beforecut/cut/beforepaste/paste 在复制操作前触发,要访问剪切板中的内容,是clipboardData对象,有三个方法,getData()[接收一个参数即要获取 的数据的格式 text/URL]/setData()/clearData(), 但在IE中这个对象在window对象属性,在Firefox chrome Safari中是事件event对象的属性
自动切换焦点: keyup事件,判断文本框是否到最大长度,然后判断target.form.elements[index]是否和当前相同,有下一个就将下一个获取焦点

HTML5 约束验证
required type="email/url" type="number/range/datetime/date/month/week/time" pattern="\d+"
检测有效性,checkValidity() 检测表单中某个字段是否有效
novalidate 禁用验证

选择框脚本
通过select和option元素来创建, 有下列属性和方法

add(newOption,relOption): 插入新的option,在相关项relOption之前
multiple : 允许多个选项
remove(index): 移除给定的项
size: 选择框中可见的选项
selectedIndex : 基于0的选中项的索引
value: 选中项的值

表单序列化
表单提交期间,浏览器如何将数据发送给服务器

表单的名称和值进行url编码,使用&分割
不发送禁用字段
只发送勾选的单选和复选框
不发送typesubmitreset的按钮
多选框中的每个选中的值单独的一个条目
点击提交按钮也会发送提交按钮,否则不发送提交按钮
select元素选中的option没有value特性时,value就是文本值

富文本编辑

what you see is what you get 所见即所得
网页中嵌入的空的HTML页面的iframe,将空文档的designMode属性设置为on 来转换为编辑模式

猜你喜欢

转载自blog.csdn.net/u013270347/article/details/80966733