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 相关文章推荐
解决表单中第一个非隐藏的元素获得焦点的一个方案
Oct 26 Javascript
JavaScript省市联动实现代码
Feb 15 Javascript
JavaSacript中charCodeAt()方法的使用详解
Jun 05 Javascript
写给vue新手们的vue渲染页面教程
Sep 01 Javascript
jQuery实现定时隐藏对话框的方法分析
Feb 12 jQuery
vue内置指令详解
Apr 03 Javascript
从源码里了解vue中的nextTick的使用
Nov 22 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
Mar 29 Javascript
Vue项目服务器部署之子目录部署方法
May 12 Javascript
JS扁平化输出数组的2种方法解析
Sep 17 Javascript
react合成事件与原生事件的相关理解
May 13 Javascript
vue @ ~ 相对路径 路径别名设置方式
Jun 05 Vue.js
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中设置index.php文件为只读的方法
2013/02/06 PHP
Codeigniter整合Tank Auth权限类库详解
2014/06/12 PHP
php微信支付接口开发程序
2016/08/02 PHP
PHP接收App端发送文件流的方法
2016/09/23 PHP
JavaScript CSS菜单功能 改进版
2008/12/20 Javascript
JavaScript CSS修改学习第二章 样式
2010/02/19 Javascript
调试Node.JS的辅助工具(NodeWatcher)
2012/01/04 Javascript
js判断变量是否未定义的代码
2020/03/28 Javascript
从零学jquery之如何使用回调函数
2014/05/16 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
NodeJS Web应用监听sock文件实例
2015/02/18 NodeJs
jQuery实现的动态伸缩导航菜单实例
2015/05/07 Javascript
javascript实现根据时间段显示问候语的方法
2015/06/18 Javascript
javascript闭包(Closure)用法实例简析
2015/11/30 Javascript
jquery中validate与form插件提交的方式小结
2016/03/26 Javascript
移动端H5开发 Turn.js实现很棒的翻书效果
2016/06/20 Javascript
JavaScript数组去重的几种方法效率测试
2016/10/23 Javascript
js数组去重的hash方法
2016/12/22 Javascript
微信小程序 Template详解及简单实例
2017/01/05 Javascript
Vue.js展示AJAX数据简单示例讲解
2017/03/29 Javascript
jQuery实现 RadioButton做必选校验功能
2017/06/15 jQuery
详解ajax的data参数错误导致页面崩溃
2018/04/30 Javascript
vue 监听某个div垂直滚动条下拉到底部的方法
2018/09/15 Javascript
Django项目开发中cookies和session的常用操作分析
2018/07/03 Python
使用Python写一个量化股票提醒系统
2018/08/22 Python
pytorch查看torch.Tensor和model是否在CUDA上的实例
2020/01/03 Python
Python MySQLdb 执行sql语句时的参数传递方式
2020/03/04 Python
Python中猜拳游戏与猜筛子游戏的实现方法
2020/09/04 Python
如何将Pycharm中调整字体大小的方式设置为&quot;ctrl+鼠标滚轮上下滑&quot;
2020/11/17 Python
幼儿教师考核制度
2014/01/25 职场文书
《哪吒闹海》教学反思
2014/02/28 职场文书
小学生优秀评语大全
2014/04/22 职场文书
教育合作协议范本
2014/10/17 职场文书
团员自我评价范文
2015/03/10 职场文书
教师节获奖感言
2015/07/31 职场文书
Redis keys命令的具体使用
2022/06/05 Redis