在HTML中表单是有<form>元素表示,在JS中表单对应的是HTMLFormElement类型。

   表单自有的属性和方法:

   获取表单

   1. 通过ID  document.getElementById

   2. 通过 document.forms 获取表单集合 在通过索引值或者name值获取具体表单元素

   提交表单

    使用input 或者 button 可以定义提交按钮,将其type设置为 submit。

<input type="submit"  value="提交" />
<button type="button">提交</button>
<input type="image" src="button.png" />

   当表单中有提交按钮,在表单控件拥有焦点时,按下Enter键就可以提交表单(textarea例外)。并且在提交表单时会触发submit事件。 

var form = document.getElementById('myForm');

form.addEventListener('submit', function(e){
// 阻止提交
e.preventDefault();
}); // 提交表示
form.submit();

   重置表单

   点击表单重置按钮时,表单会重置。设置input或者button的type为reset。

<input type="reset" value="重置" />
<button type="reset">重置</button>

   重置表单会触发reset事件。

var form = document.getElementById('myForm');

form.addEventListener('reset', function(e){
// 取消重置
e.preventDefault();
}); // 重置表单
form.reset();

     表单字段

    每个表单都有elements属性,这个属性是表单中所有元素的集合。这个集合是个有序的列表,其中包含表单中所有的字段。可以通过每个字段在集合中的位置和name访问。  

// 获取表单
var form = document.getElementById('myForm'); // 获取表单的第一个字段
var frist = form.elements[0]; // 获取名为username的字段
var username = form.elements['username'];

   表单元素拥有一些共有的属性:

   表单元素共有的方法: 

window.onload = function(){
// 第一个表单中的第一个元素获取焦点
document.forms[0].elements[0].focus();
};

    注:如果第一个表单元素是一个input元素并且type值为hidden, 或使用css的display和visibility隐藏了改元素,focus会导致错误。 

   文本框  

   单行文本框:input元素

    多行文本框: textarea元素

<!-- 文本框能够显示25个字符 输入不超过50个字符 -->
<input type="text" size="25" maxlength="50" value="" />
<!-- 文本框显示 10行 30列(字符数列) -->
<textarea rows="10" cols="30"></textarea>

    选择文本 

<input type="text" value="呵呵,这是一个表情。">
window.onload = function() {
var input = document.forms[0].elements[0];
input.select();
input.addEventListener('select', function() {
// 选择了什么文本 - HTML5 API
console.log( input.value.substring(input.selectionStart, input.selectionEnd) ) });
};
function selectText(textbox, startIndex, stopIndex){
if (textbox.setSelectionRange){
textbox.setSelectionRange(startIndex, stopIndex);
} else if (textbox.createTextRange){
var range = textbox.createTextRange();
range.collapse(true);
range.moveStart("character", startIndex);
range.moveEnd("character", stopIndex - startIndex);
range.select();
}
textbox.focus();
}

。。。

 

   

读书时间《JavaScript高级程序设计》七:表单的更多相关文章

  1. 《JAVASCRIPT高级程序设计》表单基础知识和文本框脚本

    在HTML中,表单是由<form>元素来表示,在javascript中,表单对应的是HTMLFormElement类型,它具有一些独有的属性和方法: 一.表单基础知识 1.取得表单的方式 ...

  2. JavaScript高级程序设计之表单基础

    A FORM <form id='form' action='http://a-response-url' method="post"> <!--maxlengt ...

  3. js高级程序设计 笔记 --- 表单

    一,基础知识 在html中,表单是form元素,而在js中,表单对应的是HTMLFormElement类型,继承自HTMLElement,其独特的属性和方法有(常见): action:接收请求的URL ...

  4. 读书笔记-JavaScript高级程序设计(1)

    1.组合继承 (JavaScript 中最常用的继承模式 ) (position: page168) (书中定义了两个变量名 SuperType   SubType  乍一看 感觉不太能区分,我将改为 ...

  5. javascript 高级程序设计 七

    引言:好几天没有写随笔了,项目有点紧,恰好今天项目遇到了比较大阻塞,就只好来写一篇随笔来压压惊. 1.Date类型 创建一个新的Date:(除了new Date()外) var someDate = ...

  6. 读书笔记 - javascript 高级程序设计 - 第二章 在Html中使用JavaScript

    1 <script>的6个属性 async  立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer  文档显示之后再执行脚本,只对外部脚本有效 lan ...

  7. 读书笔记 - javascript 高级程序设计 - 第一章 简介

      第一章 简介   诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262  一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BO ...

  8. JavaScript高级程序设计(七):JavaScript中的in关键字

    in 使用点一: 在js中,for--in用于遍历一个对象的属性,把对象的属性名和属性值都提出来. var obj = { "key1":"value1", & ...

  9. 读书时间《JavaScript高级程序设计》一:基础篇

    第一次看了<JavaScript高级程序设计>第二版,那时见到手上的书,第一感觉真是好厚的一本书啊.现在再次回顾一下,看的是<JavaScript高级程序设计>第三版,并记录一 ...

  10. 《JavaScript高级程序设计》读书笔记--前言

    起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的 ...

随机推荐

  1. 2014-5-22 java.lang.OutOfMemoryError: Java heap space的一次诊断

    收到消息某系统一个节点因为内存溢出而宕机.系统的中间件是weblogic.数据库的oracle. 1. 先用IBM  HeapAnalyzer分析内存溢出时的dump文件,找到占用内存最多的请求,然后 ...

  2. Android数据库高手秘籍(一)——SQLite命令

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/38461239 要想熟练地操作不论什么一个数据库.最最主要的要求就是要懂SQL语言, ...

  3. 组件-------(一)redis系列--安装部署redis+实现redis分布式缓存 java+Spring+redis

    目的:解决单机session不能共享问题,插入查询数据库时间效率问题,实现分布式缓存. 准备材料:Redis 下载链接 http://pan.baidu.com/s/1dEGTxvV 相关jar包如果 ...

  4. 每个线程分配一个stack,每个进程分配一个heap;heap没有结构,因此寻址慢(转)

    学习编程的时候,经常会看到stack这个词,它的中文名字叫做"栈". 理解这个概念,对于理解程序的运行至关重要.容易混淆的是,这个词其实有三种含义,适用于不同的场合,必须加以区分. ...

  5. Java整型数组的最大长度到底有多长?

    Java整型数组的最大长度到底有多长? 今天上网查了一下,各种说法都有,这个问题似乎总困扰我们Java初学者,无奈,只好自己试了一下,以下是我的测试代码,如果有错误,还望不吝赐教! 使用eclipse ...

  6. HUNNU11351:Pythagoras's Revenge

    http://acm.hunnu.edu.cn/online/?action=problem&type=show&id=11351&courseid=0 Problem des ...

  7. 询问任意区间的min,max,gcd,lcm,sum,xor,or,and

    给我们n个数,然后有m个询问,每个询问为L,R,询问区间[L,R]的最大最小值,最小公约数,最大公约数,和,异或,或,且 这些问题通通可以用RMQ的思想来解决. 以下用xor来作为例子 设dp[i][ ...

  8. Android 权限添加

    在AndroidMainFest.xml中加上以下代码就行了 添加WiFi以及访问网络的权限: <uses-permission android:name="android.permi ...

  9. 使用Sublime Text 2编辑和运行node-webkit应用程序

    开发工具目录结构 --E:\develop\ ----node-webkit-v0.9.2-win-ia32 ----Sublime Text 2.0.2 x64 为Sublime text2构建Bu ...

  10. windows phone 浏览器 (1)

    原文:windows phone 浏览器 (1) windows phone 浏览器主要用的控件是phone:WebBrowser,该控件就是windows phone中的IE,在grid控件嵌套的g ...