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中遭遇级联表达式陷阱
Mar 08 Javascript
Javascript 页面模板化很多人没有使用过的方法
Jun 05 Javascript
JSON 数字排序多字段排序介绍
Sep 18 Javascript
javascript跨浏览器的属性判断方法
Mar 16 Javascript
再谈javascript原型继承
Nov 10 Javascript
JavaScript的内存释放问题详解
Jan 21 Javascript
jQuery实现本地预览上传图片功能
Jan 08 Javascript
JavaScript判断是否是微信浏览器
Jun 13 Javascript
jQuery实现简单倒计时功能的方法
Jul 04 Javascript
jQuery实现form表单基于ajax无刷新提交方法实例代码
Nov 04 jQuery
vue之延时刷新实例
Nov 14 Javascript
vue使用swiper实现左右滑动切换图片
Oct 16 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 缓存实现代码及详细注释
2010/05/16 PHP
PHP常用代码大全(新手入门必备)
2010/06/29 PHP
php实现ip白名单黑名单功能
2015/03/12 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
在网站上应该用的30个jQuery插件整理
2011/11/03 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(三)情景对话中仿打字机输出文字
2013/01/23 Javascript
jquery左边浮动到一定位置时显示返回顶部按钮
2014/06/05 Javascript
js实现符合国情的日期插件详解
2017/01/19 Javascript
微信小程序搜索组件wxSearch实例详解
2017/06/08 Javascript
Vue源码学习之初始化模块init.js解析
2017/11/02 Javascript
vue-cli3.0 特性解读
2018/04/22 Javascript
微信小程序实现弹出菜单功能
2018/06/12 Javascript
layer弹出层显示在top顶层的方法
2019/09/11 Javascript
Vue项目中Api的组织和返回数据处理的操作
2019/11/04 Javascript
JS实现长图上下滚动效果
2020/03/19 Javascript
微信小程序报错: thirdScriptError的错误问题
2020/06/19 Javascript
React倒计时功能实现代码——解耦通用
2020/09/18 Javascript
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
Python实现国外赌场热门游戏Craps(双骰子)
2015/03/31 Python
利用Python的装饰器解决Bottle框架中用户验证问题
2015/04/24 Python
Python 3.x 新特性及10大变化
2015/06/12 Python
python开发中range()函数用法实例分析
2015/11/12 Python
Python异步编程之协程任务的调度操作实例分析
2020/02/01 Python
使用matplotlib动态刷新指定曲线实例
2020/04/23 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
Html5跳转到APP指定页面的实现
2020/01/14 HTML / CSS
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
俄罗斯最大的灯具网站:Fandeco
2020/03/14 全球购物
Elizabeth Gage官网:英国最好的珠宝设计之一
2020/09/26 全球购物
AURALog面试题软件测试方面
2013/10/22 面试题
竞争性谈判邀请书
2014/02/06 职场文书
上班玩游戏检讨书
2014/02/07 职场文书
家长会主持词开场白
2014/03/18 职场文书
小学生期末评语大全
2014/04/21 职场文书
利用JavaScript写一个简单计算器
2021/11/27 Javascript
《LOL》“克隆大作战”久违归来 幻灵战队皮肤上线
2022/04/03 其他游戏