JS学习笔记7_表单脚本

1.获取表单及表单元素引用的方式

var mForm = document.forms[formName];获取表单引用

mForm.elements[elemName]获取表单元素,如有同名的,则得到一组元素(例如radio button)

2.表单元素的常用属性、方法和事件

属性:

  • name:字段名
  • value:字段值
  • type:字段类型,例如button, radio等等
  • readOnly:设置只读
  • disabled:设置禁用

方法:

  • focus():获得焦点
  • blur():取消焦点

事件:

  • focus:获得焦点时触发
  • blur:失去焦点时触发
  • change:文本框input和文本域textarea在失去焦点且value值改变时触发,下拉列表框select选项改变时触发

3.提交表单的方式

  1. 按钮提交
  2. 代码提交:form.submit();
  3. 回车提交:在除textarea外的任意表单域中按Enter

注意:

  1. 代码提交不会触发submit事件,因此必须在这之前验证表单数据
  2. 代码重置触发reset事件,但在实际应用中并不常用reset功能,因为如果误操作点了重置的话会很伤

4.几种提交按钮

  1. 通用提交按钮:<input type=”submit”>
  2. 自定义提交按钮:<button type=”submit”></button>
  3. 图像按钮:<input type=”image” src=url>
  4. 其它非按钮元素:<a href=url onclick=”forms[‘mForm’].submit();”>提交</a>

注意:高程上说只有当表单里有前三种按钮之一时,按下Enter键才会提交表单,但本机在IE8,FF,Chrome中测试发现都可以提交(就算表单中只有个文本框,回车也能提交

5.文本框/文本域(input/textarea)选中部分/全部内容

主流方式:

var text = document.forms[0].elements[‘userName‘];
text.select();//全选
text.setSelectionRange(0, 3);//选择前3个字符(3个汉字或者字母)

[IE8-]设置/获取选中文本的方式与主流方式不同,设置选中的方式如下:

var range = text.createTextRange();
range.collapse();//把范围折叠到开始位置
range.moveStart(‘character‘, 0);
range.moveEnd(‘character‘, 3);
range.select();

P.S.选中在实现自动补全文本框时比较常用,例如浏览器的URL输入框

6.访问剪切板

对于访问剪切板,各浏览器的实现有差异,甚至有些浏览器不支持访问剪切板,所以不要试图修改不合适的剪切板内容以求验证通过,而应该阻止这些事件的默认行为,甚至在必要的时候可以禁用组合键

可以通过取消paste/cut/copy事件的默认行为来禁用剪切板

7.select的常用属性和方法

属性:

  • options获取select的所有Option
  • selectedIndex获取选中项的索引(没有选中为-1,多选为第一个选中项的索引)

方法:

  • add(newOption, relOption);在relOption前插入newOption
  • remove(index);移除索引为index的Option

8.option的常用属性和方法

属性:

  • selected设置选中
  • index获取该项在options中的索引

方法:

  • 添加Option:

    var newOption(text, value);//一般text和value相同,value用于提交数据
    selectbox.add(newOption, undefined);//在末尾插入
  • 移除Option:
    selectbox.remove(index);//移除第index项
    while(selectbox.options.length){//移除所有项
      selectbox.remove(0);
    }

9.实现富文本框的两种方式

  1. 插入iframe,设置src为空文档,并设置frames[iframeName].document.designMode = ‘on‘;即可实现body可编辑
  2. 设置任意元素的contentEditable属性,例如p.contentEditable = ‘true‘;可以实现任意元素可编辑

注意:

  1. 上面给出的两种方式都是全浏览器兼容的,不必担心contentEditable是HTML5属性,因为IE在很多年前就实现了它,本机测试[IE6+]都支持
  2. contentEditable注意大写的E,小写无效
  3. 富文本框并不是表单元素,所以不会自动提交,需要用隐藏表单字段来携带富文本内容
  4. 虽然支持对富文本框内容的格式化(加粗、设置前/背景颜色等等),但各个浏览器的具体实现不同,因而相同的命令可能生成不同的文本内容
时间: 2024-12-21 17:58:15

JS学习笔记7_表单脚本的相关文章

[学习笔记]--Jfinal 表单提交附件

最近,项目里面用到了Jfinal 里面的上传附件.Jfinal 的Controller 里面提供了一个 getFile系列方法提供文件上传. 我这里呢,是文件上传和表单参数一起提交.页面类似下图: 这里form表单里面使用了 enctype="multipart/form-data" .先看看Jfinal手册的说明吧!大家看了就知道了 然后还有个问题 如果是表单提交 还不可以用ajax 提交,具体的原因呢也找到了 http://www.oschina.net/question/9410

Symfony2学习笔记之表单

对于一个Web开发者来说,处理HTML表单是一个最为普通又具挑战的任务.Symfony2集成了一个Form组件,让处理表单变的容易起来.在这一节里,我们将从基础开始创建一个复杂的表单,学习表单类库中最重要的内容. Symfony2 的Form组件是一个独立的类库,你可以在Symfony2项目之外使用它. 创建一个简单的表单:假设你要创建一个应用程序的todo列表,需要显示一些任务.因为你的用户需要编辑和创建任务,所以你需要创建一个表单.在你开始之前,首先来看通用的Task类,用来表示和存储一个单

Bootstrap学习笔记(二) 表单

在Bootstrap学习笔记(一) 排版的基础上继续学习Bootstrap的表单,编辑器及head内代码不变. 3-1 基础表单 单中常见的元素主要包括:文本输入框.下拉选择框.单选按钮.复选按钮.文本域和按钮等. 在Bootstrap框架中,通过定制了一个类名`form-control`,也就是说,如果这几个元素使用了类名"form-control",将会实现一些设计上的定制效果. 1.宽度变成了100% 2.设置了一个浅灰色(#ccc)的边框 3.具有4px的圆角 4.设置阴影效果

Bootstrap 学习笔记 之表单(4 day)

Bootstrap学习到这里,理解了为什么它是一个框架,所谓的框架,目前看来就是它本身提供了一套完整的HTML结构和样式. 我们在使用的时候,只要按照这套规则来搭建HTML结构和加上相应的样式名后就可以了. 今天学习的是表单, Bootstrap 提供了下列类型的表单布局: 垂直表单(默认) 内联表单 水平表单 需要一提的就是表单的状态: 表单控件状态 除了 :focus 状态(即,用户点击 input 或使用 tab 键聚焦到 input 上),Bootstrap 还为禁用的输入框定义了样式,

Codeigniter入门学习笔记14—表单的验证

很久很久以前学习Codeigniter的笔记记录,很随意,但都是自己记录的,希望对需要的人有所帮助. 本文使用word2013编辑并发布 Postbird | There I am , in the world more exciting! Postbird personal website : http://www.ptbird.cn 表单验证 1.add_user ????] 2.form_check() ???? 3. ? 1.加载 ????$this->load->library('f

JavaScript笔记:表单脚本

JavaScript最初的应用之一,就是分担服务器处理表单的责任,打破处处依赖服务器的局面. 1.表单的基础知识 在javascript中,表单是用HTMLFormElement类型来表示的.HTMLFormElement继承了HTMLElement,因而与其他HTML元素有相同的默认属性,不过HTMLFormElement也有它自己独有的属性和方法: acceptCharset:服务器能够处理的字符集 action:接受请求的URL elements:表单中所有控件的集合 enctype:请求

AngularJS学习笔记(二) 表单验证案例(ng-repeat/filter)

这一节相对来说需要理解的东西不是太多,记住了那些api就行了. 还是一个案例(同样来自miaov),一个表单验证,先上代码,然后再对对应的内容进行解释. <!DOCTYPE html> <html lang="en" ng-app="myApp"> <head> <meta charset="UTF-8"> <title>Title</title> </head>

2017.04 vue学习笔记---08表单控件绑定---基础用法

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> div{ margin-bottom: 30px; } </style> <script src="js/vue.js"></script> <

[知了堂学习笔记]_Jquery_Validate 表单校验的使用

一.效果图: 二.JqueryValidate的好处 在做注册.或者类似以上的表单提交的时候,大家是不是都很烦那种,把数据拿到后台去判断, 可能经过了正则表达式之类的复杂判断,然后发现数据错误.接着通过request转发到页面上,再通过EL 表达式输出错误信息.实话实话,在没发现这个插件之前,我是这么干的,好痛苦的感觉. JqueryValidate的好处就在于,你不必经过servlet,就可以在页面上面判断用户输入的信息是否正确,它能够快速实现 表单的校验. 三.引入插件 顺序不能乱,此插件是