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 相关文章推荐
jQuery 技巧小结
Apr 02 Javascript
jQuery表格行换色的三种实现方法
Jun 27 Javascript
jQuery学习笔记之控制页面实现代码
Feb 27 Javascript
jquery解决图片路径不存在执行替换路径
Feb 06 Javascript
javascript中数组的多种定义方法和常用函数简介
May 09 Javascript
JavaScript中Math.SQRT2属性的使用详解
Jun 14 Javascript
浅谈jQuery双事件多重加载的问题
Oct 05 Javascript
关于Jquery中的事件绑定总结
Oct 26 Javascript
AngularJS模仿Form表单提交的实现代码
Dec 08 Javascript
hammer.js实现图片手势放大效果
Aug 29 Javascript
Dropify.js图片宽高自适应的方法
Nov 27 Javascript
Vuex的基本概念、项目搭建以及入坑点
Nov 04 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
joomla jce editor 解决上传中文名文件失败问题
2013/06/09 PHP
php根据分类合并数组的方法实例详解
2013/11/06 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
php基于GD库画五星红旗的方法
2015/02/24 PHP
Windows下Apache + PHP SESSION丢失的解决过程全纪录
2015/04/07 PHP
jQuery向下滚动即时加载内容实现的瀑布流效果
2016/01/07 PHP
laravel 关联关系遍历数组的例子
2019/10/10 PHP
javascript闭包的理解和实例
2010/08/12 Javascript
JQuery与JSon实现的无刷新分页代码
2011/09/13 Javascript
node.js中watch机制详解
2014/11/17 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
javascript拖拽应用实例
2016/03/25 Javascript
javaScript中的原型解析【推荐】
2016/05/05 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
javascript删除html标签函数cIsHTML
2017/01/09 Javascript
Javascript中数组去重与拍平的方法示例
2017/02/03 Javascript
js实现文字无缝向上滚动
2017/02/16 Javascript
echarts实现地图定时切换散点与多图表级联联动详解
2018/08/07 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
JS实现图片切换特效
2019/12/23 Javascript
vue绑定class的三种方法
2020/12/24 Vue.js
[01:06:12]VP vs NIP 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
python通过pil为png图片填充上背景颜色的方法
2015/03/17 Python
python基于隐马尔可夫模型实现中文拼音输入
2016/04/01 Python
python反编译学习之字节码详解
2019/05/19 Python
python中用logging实现日志滚动和过期日志删除功能
2019/08/20 Python
python读取配置文件方式(ini、yaml、xml)
2020/04/09 Python
python多线程实现同时执行两个while循环的操作
2020/05/02 Python
python 可视化库PyG2Plot的使用
2021/01/21 Python
Python如何使用神经网络进行简单文本分类
2021/02/25 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
德国化妆品和天然化妆品网上商店:kosmetikfuchs.de
2017/06/09 全球购物
澳大利亚当地社区首选的光学商店:1001 Optical
2019/08/24 全球购物
社团文化节邀请函
2014/01/10 职场文书
法定代表人授权委托书范本
2014/10/07 职场文书
开发者首先否认《遗弃》被取消的传言
2022/04/11 其他游戏