DOM基础教程之使用DOM控制表单


Posted in Javascript onJanuary 20, 2015

1.表单简介

表单<form>是网页中交互最多的形式之一,它通过各种形式接收用户的数据,包括下拉列表框,单选按钮,复选框和文本框,本篇主要介绍表单中常用的属性和方法
javascript中可以很方便的操作表单,例如获得表单数据进行有效验证,自动给表单域赋值,处理表单事件等。
此时每个form都解析为一个对象,即form对象,可以通过document.forms集合来引用这些对象,例如一个nama属性为form1的表单可以使用

document.forms["form1"]

不仅如此,还可以通过表单在文档中的索引来引用表单对象。例如

document.forms[1]

表示引用文档中的第二个表单对象

DOM基础教程之使用DOM控制表单

以下为一个包含多种form元素,每个元素都有label标记,绑定在元素上,这样通过点击文字就能定为和选择到表格,提高了用户体验。

<form method="post" name="myForm1" action="addInfo.aspx">

<p><label for="name">请输入您的姓名:</label><br><input type="text" name="name" id="name"></p>

<p><label for="passwd">请输入您的密码:</label><br><input type="password" name="passwd" id="passwd"></p>

<p><label for="color">请选择你最喜欢的颜色:</label><br>

<select name="color" id="color">

    <option value="red">红</option>

    <option value="green">绿</option>

    <option value="blue">蓝</option>

    <option value="yellow">黄</option>

    <option value="cyan">青</option>

    <option value="purple">紫</option>

</select></p>

<p>请选择你的性别:<br>

    <input type="radio" name="sex" id="male" value="male"><label for="male">男</label><br>

    <input type="radio" name="sex" id="female" value="female"><label for="female">女</label></p>

<p>你喜欢做些什么:<br>

    <input type="checkbox" name="hobby" id="book" value="book"><label for="book">看书</label>

    <input type="checkbox" name="hobby" id="net" value="net"><label for="net">上网</label>

    <input type="checkbox" name="hobby" id="sleep" value="sleep"><label for="sleep">睡觉</label></p>

<p><label for="comments">我要留言:</label><br><textarea name="comments" id="comments" cols="30" rows="4"></textarea></p>

<p><input type="submit" name="btnSubmit" id="btnSubmit" value="Submit">

<input type="reset" name="btnReset" id="btnReset" value="Reset"></p>

</form>

通常每个表单元素应该有name和id属性,name用于交给服务器,id用于绑定和功能筛选。

2.访问表单中的元素

表单中的元素,无论文本框、单选按钮、下拉按钮、下拉列表框或者其他的内容,都包含在form的elements集合中,可以利用元素在集合中的位置或元素的name属性来获得该元素的引用。

var oForm = document.forms["form1"]//获取表单

        var otextForm = oForm.elements[0]; //获取第一个元素

        var otextPasswd = oForm.elements["passwd"] //获取name属性为passwd的元素

使用效果最高,最直观的方法引用:

var otextcomments = oForm.elements.comments; //获取name属性为comments的元素

3.公共属性与方法

所有表单中的元素(除了隐藏元素)都有一些共同的属性、方法。这里将一些常用的罗列

DOM基础教程之使用DOM控制表单

var oForm = document.forms["form1"]; //获取表单

            var otextcomments = oForm.elements.comments; //获取name属性为comments的元素

            alert(oForm.type); //查看元素类型

            var otextPasswd = oForm.elements["passwd"]; //获取name属性为passwd的元素

            otextPasswd.focus(); //聚焦到特定的元素上

4.表单的提交

form中的提交通过按钮或者具备按钮功能的图片来完成

<input type="submit" name="btnsubmit" id="btnSubmit" value="Submit">

        <input type="image" name="picSubmit" id="picSSubmit" src="Submit.jpg">

当用户按回车键或者单击其中一个按钮时,就可以完成表单的提交,无需其他代码。可以通过form中的action属性来检测是否提交。

<form method="post" name="form1" action="javascript:alert('submited')"></form>

用户在提交表单的过程中可能因为网速过慢而反复单击提交按钮,这对服务器而言是很大的负担,可以通过使用disabled属性来禁止这种行为。例如:

<input type="button" value="Submit" />
Javascript 相关文章推荐
c#和Javascript操作同一json对象的实现代码
Jan 17 Javascript
利用JS延迟加载百度分享代码,提高网页速度
Jul 01 Javascript
网页防止tab键的使用快速解决方法
Nov 07 Javascript
使用jQuery和Bootstrap实现多层、自适应模态窗口
Dec 22 Javascript
分享javascript计算时间差的示例代码
Mar 19 Javascript
js改变style样式和css样式的简单实例
Jun 28 Javascript
JavaScript使用键盘输入控制实现数字验证功能
Aug 19 Javascript
jQuery加载及解析XML文件的方法实例分析
Jan 22 Javascript
JS实现弹出下载对话框及常见文件类型的下载
Jul 13 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
Aug 16 Javascript
electron + vue项目实现打印小票功能及实现代码
Nov 25 Javascript
react高阶组件添加和删除props
Apr 26 Javascript
DOM基础教程之使用DOM控制表格
Jan 20 #Javascript
jQuery实现tag便签去重效果的方法
Jan 20 #Javascript
js实现class样式的修改、添加及删除的方法
Jan 20 #Javascript
DOM基础教程之事件类型
Jan 20 #Javascript
js使用DOM设置单选按钮、复选框及下拉菜单的方法
Jan 20 #Javascript
DOM基础教程之事件对象
Jan 20 #Javascript
js判断浏览器版本以及浏览器内核的方法
Jan 20 #Javascript
You might like
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
一个JS翻页效果
2007/07/23 Javascript
超越Jquery_01_isPlainObject分析与重构
2010/10/20 Javascript
简约JS日历控件 实例代码
2013/07/12 Javascript
Mac/Windows下如何安装Node.js
2013/11/22 Javascript
浅析JavaScript中的隐式类型转换
2013/12/05 Javascript
禁用Tab键JS代码兼容Firefox和IE
2014/04/18 Javascript
JS控制输入框内字符串长度
2014/05/21 Javascript
jquery获取当前日期的方法
2015/01/14 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
AngularJs自定义服务之实现签名和加密
2016/08/02 Javascript
jQuery文字轮播特效
2017/02/12 Javascript
JS使用遮罩实现点击某区域以外时弹窗的弹出与关闭功能示例
2018/07/31 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
node.js使用express框架进行文件上传详解
2019/03/03 Javascript
一步一步实现Vue的响应式(对象观测)
2019/09/02 Javascript
vue实现二级导航栏效果
2019/10/19 Javascript
JavaScript相等运算符的九条规则示例详解
2019/10/20 Javascript
JavaScript实现网页跨年倒计时
2020/12/02 Javascript
[59:44]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 paiN vs iG
2018/03/31 DOTA
python实现类似ftp传输文件的网络程序示例
2014/04/08 Python
python登陆asp网站页面的实现代码
2015/01/14 Python
Python如何实现守护进程的方法示例
2017/02/08 Python
python通过SSH登陆linux并操作的实现
2019/10/10 Python
python return逻辑判断表达式实现解析
2019/12/02 Python
python_mask_array的用法
2020/02/18 Python
python 获取谷歌浏览器保存的密码
2021/01/06 Python
Spartoo芬兰:欧洲最大的网上鞋店
2016/08/28 全球购物
计算机专业个人求职信范例
2013/09/23 职场文书
高级电工工作职责
2013/11/21 职场文书
最新奶茶店创业计划书
2014/01/25 职场文书
地下停车场租赁协议范本
2014/10/07 职场文书
房产协议书范本
2014/10/18 职场文书
Mac环境Nginx配置和访问本地静态资源的实现
2021/03/31 Servers
Ajax是什么?Ajax高级用法之Axios技术
2021/04/21 Javascript
Python 数据结构之十大经典排序算法一文通关
2021/10/16 Python