文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2023-06-03 02:43

关注

表单和数据完整性

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

表单基础

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@]
阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯