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 相关文章推荐
ASP中用Join和Array,可以加快字符连接速度的代码
Aug 22 Javascript
js返回上一页并刷新的多种实现方法
Feb 26 Javascript
node.js中的url.resolve方法使用说明
Dec 10 Javascript
javascript中substring()、substr()、slice()的区别
Aug 30 Javascript
纯javascript响应式树形菜单效果
Nov 10 Javascript
基于Bootstrap实现下拉菜单项和表单导航条(两个菜单项,一个下拉菜单和登录表单导航条)
Jul 22 Javascript
javascript 封装Date日期类实例详解
May 28 Javascript
Node.js五大应用性能技巧小结(必须收藏)
Aug 09 Javascript
深入浅析javascript函数中with
Oct 28 Javascript
微信小程序蓝牙连接小票打印机实例代码详解
Jun 03 Javascript
解决layer弹出层的内容页点击按钮跳转到新的页面问题
Sep 14 Javascript
js实现AI五子棋人机大战
May 28 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
在WordPress中使用wp-cron插件来设置定时任务
2015/12/10 PHP
laravel框架模型中非静态方法也能静态调用的原理分析
2019/11/23 PHP
基于jQuery的的一个隔行变色,鼠标移动变色的小插件
2010/07/06 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
jQuery中scrollLeft()方法用法实例
2015/01/16 Javascript
使用AngularJS2中的指令实现按钮的切换效果
2017/03/27 Javascript
echarts饼图扇区添加点击事件的实例
2017/10/16 Javascript
jQuery实现网页拼图游戏
2020/04/22 jQuery
浅谈vue的第一个commit分析
2020/06/08 Javascript
在Python的Django框架中编写编译函数
2015/07/20 Python
python控制台中实现进度条功能
2015/11/10 Python
Python 遍历子文件和所有子文件夹的代码实例
2016/12/21 Python
Python 通过URL打开图片实例详解
2017/06/01 Python
Python模拟随机游走图形效果示例
2018/02/06 Python
Windows 安装 Anaconda3+PyCharm的方法步骤
2019/06/13 Python
Python 共享变量加锁、释放详解
2019/08/28 Python
简单瞅瞅Python vars()内置函数的实现
2019/09/27 Python
pyspark给dataframe增加新的一列的实现示例
2020/04/24 Python
matplotlib 三维图表绘制方法简介
2020/09/20 Python
HTTP状态码详解
2021/03/18 杂记
美国百年历史早餐食品供应商:Wolferman’s
2017/01/18 全球购物
美国演唱会订票网站:Ticketmaster美国
2017/10/05 全球购物
英国家用电器购物网站:Hughes
2018/02/23 全球购物
英国在线发型和美容产品商店:Beauty Cutie
2019/04/27 全球购物
英国老牌潮鞋店:Offspring
2019/08/19 全球购物
Java面试题:请问一下代码输出是什么
2015/05/27 面试题
初中音乐教学反思
2014/01/12 职场文书
社区安全检查制度
2014/02/03 职场文书
《落花生》教学反思
2014/02/25 职场文书
学生个人自我鉴定范文
2014/03/28 职场文书
委托书样本
2014/04/02 职场文书
《灰椋鸟》教学反思
2014/04/27 职场文书
省级优秀班集体申报材料
2014/05/25 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
八年级作文之感悟亲情
2019/11/20 职场文书
Android 中的类文件和类加载器详情
2022/06/05 Java/Android