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对象的property和prototype是什么一种关系
Aug 06 Javascript
javascript arguments 传递给函数的隐含参数
Aug 21 Javascript
jquery插件 autoComboBox 下拉框
Dec 22 Javascript
javascript事件函数中获得事件源的两种不错方法
Mar 17 Javascript
js跨域问题浅析及解决方法优缺点对比
Nov 08 Javascript
整理Javascript基础入门学习笔记
Nov 29 Javascript
js判断radiobuttonlist的选中值显示/隐藏其它模块的实现方法
Aug 25 Javascript
纯原生js实现table表格的增删
Jan 05 Javascript
input file样式修改以及图片预览删除功能详细概括(推荐)
Aug 17 Javascript
解决Vue使用swiper动态加载数据,动态轮播数据显示白屏的问题
Sep 27 Javascript
Node.js API详解之 vm模块用法实例分析
May 27 Javascript
jQuery实现日历效果
Sep 11 jQuery
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 strtok()函数的优点分析
2010/03/02 PHP
Windows下安装Memcached的步骤说明
2010/04/25 PHP
php中time()和mktime()方法的区别
2013/09/28 PHP
php获取本机真实IP地址实例代码
2016/03/31 PHP
php使用正则表达式去掉html中的注释方法
2016/11/03 PHP
在页面上点击任一链接时触发一个事件的代码
2007/04/07 Javascript
各种效果的jquery ui(接口)介绍
2008/09/17 Javascript
jQuery Ajax 实例全解析
2011/04/20 Javascript
Ubuntu 11.10 安装Node.js的方法
2011/11/30 Javascript
拖动table标题实现改变td的大小(css+js代码)
2013/04/16 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
浅谈Vue父子组件和非父子组件传值问题
2017/08/22 Javascript
微信小程序登录session的使用
2019/03/17 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
[53:10]2018DOTA2亚洲邀请赛 4.6 淘汰赛 VP vs VG 第一场
2018/04/11 DOTA
Python编程判断一个正整数是否为素数的方法
2017/04/14 Python
python僵尸进程产生的原因
2017/07/21 Python
Python通过matplotlib绘制动画简单实例
2017/12/13 Python
linux中如何使用python3获取ip地址
2019/07/15 Python
PageFactory设计模式基于python实现
2020/04/14 Python
Python 利用argparse模块实现脚本命令行参数解析
2020/12/28 Python
python中@contextmanager实例用法
2021/02/07 Python
详解python第三方库的安装、PyInstaller库、random库
2021/03/03 Python
Application Cache未缓存文件无法访问无法加载问题
2014/05/31 HTML / CSS
后勤人员自我鉴定
2013/10/20 职场文书
迟到检讨书800字
2014/01/13 职场文书
学校安全教育制度
2014/01/31 职场文书
中学教师自我鉴定
2014/02/07 职场文书
培训楼经理岗位责任制
2014/02/10 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
安全口号大全
2014/06/21 职场文书
学校安全管理责任书
2014/07/23 职场文书
群教个人对照检查材料
2014/08/20 职场文书
检讨书格式范文
2015/05/07 职场文书
Python中tqdm的使用和例子
2022/09/23 Python