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 相关文章推荐
实现png图片和png背景透明(支持多浏览器)的方法
Sep 08 Javascript
ASP.NET jQuery 实例2 (表单中使用回车在TextBox之间向下移动)
Jan 13 Javascript
创建公共调用 jQuery Ajax 带返回值
Aug 01 Javascript
php is_numberic函数造成的SQL注入漏洞
Mar 10 Javascript
js中的setInterval和setTimeout使用实例
May 09 Javascript
js实现的倒计时按钮实例
Jun 24 Javascript
详解jquery选择器的原理
Aug 01 jQuery
React实践之Tree组件的使用方法
Sep 30 Javascript
简单的三步vuex入门
May 20 Javascript
vue-rx的初步使用教程
Sep 21 Javascript
Vue extend的基本用法(实例详解)
Dec 09 Javascript
浅谈JavaScript浅拷贝和深拷贝
Nov 07 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
Yii实现复选框批量操作实例代码
2017/03/15 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
判断目标是否是window,document,和拥有tagName的Element的代码
2010/05/31 Javascript
node.js 一个简单的页面输出实现代码
2012/03/07 Javascript
JQuery实现用户名无刷新验证的小例子
2013/03/22 Javascript
Ajax提交与传统表单提交的区别说明
2014/02/07 Javascript
window.location.href IE下跳转失效的解决方法
2014/03/27 Javascript
avascript中的自执行匿名函数应用示例
2014/09/15 Javascript
浅谈javascript原型链与继承
2015/07/13 Javascript
JS模拟并美化的表单控件完整实例
2015/08/19 Javascript
node.js实现快速截图
2016/08/27 Javascript
微信小程序技巧之show内容展示,上传文件编码问题
2017/01/23 Javascript
angular框架实现全选与单选chekbox的自定义
2017/07/06 Javascript
ReactNative实现图片上传功能的示例代码
2017/07/11 Javascript
ES6 javascript中Class类继承用法实例详解
2017/10/30 Javascript
vue使用自定义icon图标的方法
2018/05/14 Javascript
JS原生带缩略图的图片切换效果
2018/10/10 Javascript
使用layui实现的左侧菜单栏以及动态操作tab项方法
2019/09/10 Javascript
p5.js临摹动态图形实现方法详解
2019/10/23 Javascript
vue-router的hooks用法详解
2020/06/08 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
Python中的多行注释文档编写风格汇总
2016/06/16 Python
numpy 计算两个数组重复程度的方法
2018/11/07 Python
Python实现随机创建电话号码的方法示例
2018/12/07 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
Python常用数据类型之间的转换总结
2019/09/06 Python
Python基于stuck实现scoket文件传输
2020/04/02 Python
python 轮询执行某函数的2种方式
2020/05/03 Python
Python selenium实现断言3种方法解析
2020/09/08 Python
美体小铺加拿大官方网站:The Body Shop加拿大
2016/10/30 全球购物
美国领先的在线旅游网站:Orbitz
2018/11/05 全球购物
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
现代化办公人员工作的自我评价
2013/10/16 职场文书
竞争上岗实施方案
2014/03/21 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
JS精髓原型链继承及构造函数继承问题纠正
2022/06/16 Javascript