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 相关文章推荐
IE中图片的onload事件无效问题和解决方法
Jun 06 Javascript
Javascript window对象详解
Nov 12 Javascript
node.js中的favicon.ico请求问题处理
Dec 15 Javascript
js实现头像图片切割缩放及无刷新上传图片的方法
Jul 17 Javascript
JavaScript中ES6字符串扩展方法
Aug 26 Javascript
最全面的JS倒计时代码
Sep 17 Javascript
js常用的继承--组合式继承
Mar 06 Javascript
Node.js使用Express.Router的方法
Nov 14 Javascript
JS验证输入的是否是数字及保留几位小数问题
May 09 Javascript
ES6 更易于继承的类语法的使用
Feb 11 Javascript
vue调用语音播放的方法
Sep 27 Javascript
使用Element的InfiniteScroll 无限滚动组件报错的解决
Jul 27 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
索尼ICF-SW100收音机评测
2021/03/02 无线电
使用php+swoole对client数据实时更新(一)
2016/01/07 PHP
PHP分页初探 一个最简单的PHP分页代码的简单实现
2016/06/21 PHP
PHP 中常量的知识整理
2017/04/14 PHP
php提取微信账单的有效信息
2018/10/01 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
2020/05/27 PHP
两个DIV等高的JS的实现代码
2007/12/23 Javascript
js 阻止子元素响应父元素的onmouseout事件具体实现
2013/12/23 Javascript
浅析基于WEB前端页面的页面内容搜索的实现思路
2014/06/10 Javascript
JavaScript将当前时间转换成UTC标准时间的方法
2015/04/06 Javascript
JavaScript实现点击文字切换登录窗口的方法
2015/05/11 Javascript
Javascript验证Visa和MasterCard信用卡号的方法
2015/07/27 Javascript
深入理解JS中的Function.prototype.bind()方法
2016/10/11 Javascript
javascript解析ajax返回的xml和json格式数据实例详解
2017/01/05 Javascript
动手写一个angular版本的Message组件的方法
2017/12/16 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
vue拖拽排序插件vuedraggable使用方法详解
2020/08/21 Javascript
基于 jQuery 实现键盘事件监听控件
2019/04/04 jQuery
JavaScript常用工具函数库汇总
2020/09/17 Javascript
vue created钩子函数与mounted钩子函数的用法区别
2020/11/05 Javascript
在Django的模型和公用函数中使用惰性翻译对象
2015/07/27 Python
深入理解python中的atexit模块
2017/03/07 Python
简单了解Python3里的一些新特性
2019/07/13 Python
详解Django中views数据查询使用locals()函数进行优化
2020/08/24 Python
CSS3的一个简单导航栏实现
2015/08/03 HTML / CSS
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
英国时尚高尔夫服装购物网站:Trendy Golf
2020/01/10 全球购物
JAVA的事件委托机制和垃圾回收机制
2014/09/07 面试题
公司任命书范本
2014/06/04 职场文书
贷款担保书
2015/01/20 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
教师“一帮一”结对子活动总结
2015/05/07 职场文书
2019奶茶店创业计划书范本!
2019/07/15 职场文书
发言稿之优秀教师篇
2019/09/26 职场文书
Python利器openpyxl之操作excel表格
2021/04/17 Python
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang