《JavaScript高级程序设计》学习笔记(表单和数据完整性)

发布时间:2020-08-05 08:52:44 作者:tonyscau
来源:ITPUB博客 阅读:157

表单和数据完整性

创建表单元素是为了满足用户向服务器发送数据的需求。

表单基础

HTML表单通过

元素来定义

特性:
method 属性 设置或获取如何将表单数据发送到服务器
action 属性 设置或获取表单内容要发送处理的 URL
enctype 属性 设置或获取表单发送的编码方式。默认是application/x-www-form-urlencoded,如果要上传文件要设成multipart/form-data。
accept 属性 上传文件时,列出服务器能正确处理的mime类型
acceptCharset 属性 设置或获取处理表单的服务器必须接受的字符编码

输入元素:
元素 主要的HTML输入元素
通过type属性确定控件:
text radio checkbox file password button submit reset hidden image

而且


自动切换到下一个
通过表单的elements集合,获取下一个表单元素


限制textarea的字符数
例如:


允许/阻止文本框中的字符
用于验证用户数据,或阻止无效数据输入

阻止无效字符
设定要阻止的字符,再检测输入字符的charCode是否要阻止的字符

允许有效字符
设定允许的字符,再检测输入字符的charCode是否允许的字符

对于粘贴内容
1 禁止粘贴
ie中,用onpaste事件阻止粘贴行为,其他还需要用oncontextmenu事件
例如:
对于用Ctrl+V进行的粘贴,可根据charCode和ctrlKey判断按键是否Ctrl+V

2 失去焦点验证
在onblur事件中检测
注意:不能在onchange事件中检测,当第一次检测时能正常发现不正确内容,这时焦点回到原来文本框,但如果第二次并没有修改不正确的内容,所以没有触发onchange事件,即没有触发检测事件直接跳过了。


使用上下键操作数字文本
在onkeydowm事件中操作

列表框和组合框

列表框和组合框通过HTML的元素定义了 options 集合
获取

index 属性 表示在options集合中的位置
例如:oListbox.option[1].index; //1

length 属性 表示选项数目
例如:oListbox.options.length;


获取/更改选中项
select:
selectedIndex 属性 选中的选项的索引(没有选中时为-1)
multiple 属性 设为"multiple"时可以在列表框中选择多个选项
如果选中多个选项,selectedIndex将包含第一个选项的索引

option:
selected 属性 表示选项是否被选中
通过对选项循环判断selected属性,获取所有选中选项的索引


添加选项
用javascript添加选项:
1 使用DOM方法创建


删除选项
用javascript删除选项:
1 将要删除的选项设置为null
oListbox.options[1] = null;
2 使用remove()方法,参数为要删除的选项的索引
oListbox.remove(0);
注意:如果用循环来删除多个选项,最好从最大的索引开始操作,因为删除后index索引会重置


移动选项
把选项从一个列表框移动到另一个列表框:
1 获取要移动的选项的引用
var oOption = oListboxFrom(iIndex);
2 在另一个列表框中使用appendChild()方法添加该选项,同时该选项会从当前列表框中删除
oListboxTo.appendChild(oOption);
注意:跟删除选项一样,如果要移动多个选项,最好从最大的索引开始操作


重新排序选项
将选项进行重新排序,包括向上和向下移动:
1 获取要移动的选项的引用
var oOption = oListbox(iIndex);
2 获取要移动的位置的选项
向上移动:var oPrevOption = oListbox.options[iIndex-1];
向下移动:var oNextOption = oListbox.options[iIndex+1];
3 使用insertBefore()方法重新设置位置
向上移动:oListbox.insertBefore(oOption, oPrevOption);
向下移动:oListbox.insertBefore(oNextOption, oOption);

创建自动提示的文本框

这种文本框会检查用户输入的头几个字符,然后给出帮助用户输入的列表


匹配
搜索字符串数组并返回以特定字符开头的所有值:
1 创建用于存储所有匹配的值的数组
var arrResule = new Array;
2 确保进行匹配的字符串非空,再循环找出匹配的每个值,并添加到数组中
if(arrValues[i].indexof(sText)==0) arrResult.push(arrResule[i]);
建议:在得到匹配数组后最好用sort方法排序,对于字符串可结合localeCompare方法


内部机制
使用keyup事件调用提示程序
1 清空列表框(参考删除选项)
2 把匹配数组的值插入到列表框(参考添加选项)
3 给列表框的选项添加onclick事件,将文本框内容设置为当前选中的选项
注意:由于匹配过程是区分大小写的,建议先将字符串转为小写或大写

[@more@]
推荐阅读:
  1. PHP、MySQL和JavaScript学习手册笔记(六)
  2. PHP、MySQL和JavaScript学习手册笔记(五)

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

javascript高级程序设计 学习 笔记

上一篇:千锋java视频教程:Java微服务架构2.0教程资源直接送

下一篇:什么是业务影响分析?企业应如何执行

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》