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 相关文章推荐
javascript eval函数深入认识
Feb 21 Javascript
仿jQuery的siblings效果的js代码
Aug 09 Javascript
关于二级域名下使用一级域名下的COOKIE的问题
Nov 07 Javascript
JQuery实现简单验证码提示解决方案
Dec 20 Javascript
JQuery给元素绑定click事件多次执行的解决方法
May 29 Javascript
jQuery的缓存机制浅析
Jun 07 Javascript
jQuery实现首页图片淡入淡出效果的方法
Jun 10 Javascript
Vue中计算属性computed的示例解读
Jul 26 Javascript
JS实现的新闻列表自动滚动效果示例
Jan 30 Javascript
JavaScript交换两个变量方法实例
Nov 25 Javascript
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
实现AJAX异步调用和局部刷新的基本步骤
Mar 17 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文件上传表单摘自drupal的代码
2011/02/15 PHP
PHP文件打开、关闭、写入的判断与执行代码
2011/05/24 PHP
浅析linux下apache服务器的配置和管理
2013/08/10 PHP
php利用腾讯ip分享计划获取地理位置示例分享
2014/01/20 PHP
简单谈谈php中的unicode和utf8编码
2015/06/10 PHP
php 函数使用可变数量的参数方法
2017/05/02 PHP
用jquery来定位
2007/02/20 Javascript
Whatever:hover 无需javascript让IE支持丰富伪类
2010/06/29 Javascript
浅析js封装和作用域
2013/07/09 Javascript
JavaScript显示当前文档最后修改日期的方法
2015/03/19 Javascript
JavaScript获取按钮所在form表单id的方法
2015/04/02 Javascript
jQuery实现的指纹扫描效果实例(附演示与demo源码下载)
2016/01/26 Javascript
手机浏览器 后退按钮强制刷新页面方法总结
2016/10/09 Javascript
将form表单通过ajax实现无刷新提交的简单实例
2016/10/12 Javascript
Bootstrap源码解读导航(6)
2016/12/23 Javascript
vue实现添加标签demo示例代码
2017/01/21 Javascript
详解基于DllPlugin和DllReferencePlugin的webpack构建优化
2018/06/28 Javascript
浅谈Javascript中的对象和继承
2019/04/19 Javascript
解决vue自定义全局消息框组件问题
2019/11/22 Javascript
JavaScript十大取整方法实例教程
2020/12/03 Javascript
[44:40]KG vs LGD 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/16 DOTA
Linux下用Python脚本监控目录变化代码分享
2015/05/21 Python
Python实现二分查找算法实例
2015/05/26 Python
python解析基于xml格式的日志文件
2017/02/25 Python
python爬虫的工作原理
2017/03/05 Python
详解python3中zipfile模块用法
2018/06/18 Python
在Pandas中DataFrame数据合并,连接(concat,merge,join)的实例
2019/01/29 Python
python+tkinter实现学生管理系统
2019/08/20 Python
python入门之基础语法学习笔记
2020/02/08 Python
简单的命令查看安装的python版本号
2020/08/28 Python
化妆品店促销方案
2014/02/24 职场文书
军事博物馆观后感
2015/06/05 职场文书
庆元旦主持词
2015/07/06 职场文书
关于感恩的歌曲整理(8首)
2019/08/14 职场文书
JavaScript 与 TypeScript之间的联系
2021/11/27 Javascript
Python实现视频自动打码的示例代码
2022/04/08 Python