读书时间《JavaScript高级程序设计》七:表单

    在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();
}

。。。

 

   

时间: 2024-10-01 00:29:27

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

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

A FORM <form id='form' action='http://a-response-url' method="post"> <!--maxlength 最大值 placeholder 占位符 autofocus 自动聚焦--> <input type='text' name='name' size='20' maxlength='10' placeholder='initial' autofocus /><br /> <

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

在HTML中,表单是由<form>元素来表示,在javascript中,表单对应的是HTMLFormElement类型,它具有一些独有的属性和方法: 一.表单基础知识 1.取得表单的方式 var form = document.getElementById("form1");//取得页面中id=form1的元素 var form1 = document.forms[0];//取得页面中的第一个表单 var myform = document.forms["myFo

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

第一章 简介   诞生时间 1995 最初用途 客服端验证 第一版标准 注意是标准 1997年 Ecma-262  一个完整的js实现由三部分组成 ECMAScript DOM 文档对象模型 BOM 浏览器对象模型 ECMAScript的宿主环境 web浏览器 Node(服务器js平台) adobe flash js和as的关系 他们都实现了 ECMAScript 五大主流浏览器 IE Firefox Safari Chrome Opera dom介绍 它是针对xml但经过扩展用于html的应用

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

1 <script>的6个属性 async  立即下载当前script标签的外部脚本 但不能影响别的 charset 没用了 defer  文档显示之后再执行脚本,只对外部脚本有效 language 没用了 src type 描述代码内容Mine类型 默认就是text/javascript 没什么用 2 在解释器对<script>元素内部的所有代码求值完毕以前 页面中的其余内容都不会被浏览器加载或显示 3 有两种script 嵌入式 外部引入式 在解析外部引入式的js文件时,页面的

javascript高级程序设计 第十四章--表单脚本

javascript高级程序设计 第十四章--表单脚本 在HTML中表单由<form>元素表示,在js中表单对应的是HTMLFormElement类型,这个类型也有很多属性和方法:取得表单元素的引用还是为它添加id特性,用DOM操作来获取表单元素:提交表单:把<input>或<button>元素的type特性设置为"submit",图像按钮把<input>元素的type特性设置为"image",也可以调用submit(

读书时间:《JavaScript高级程序设计》 一

在2011年的时候第一次看了<JavaScript高级程序设计>第二版,那时见到手上的书,第一感觉真是好厚的一本书啊.现在再次回顾一下,看的是<JavaScript高级程序设计>第三版,并记录一些了内容. 第1章:JavaScript简介 JavaScript的历史.版本,可以看到一个有趣的故事. JavaScript是什么? 一个完整的JavaScript应该有3个不同的部分组成: 1. ECMAScript(核心) ECMAScript规定了语言的:语法.类型.语句.关键字.保

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

起因 web编程过程使用javascript时感觉很吃力,效率很低.根本原因在于对javascript整个知识体系不熟,看来需要找些书脑补一下,同时欢迎众网友监督. 大神推荐书籍 看了博客大神们推荐的javascript书籍和推荐的阅读顺序,如下所示: 从头到尾对一遍<<Javascript高级程序设计>>,不懂的地方可以暂时掠过,给自己对javascript有一个大体的印象 认认真真的读完这本书:<<编写可维护的javascript>>,从编码规范,技巧,

JavaScript高级程序设计(读书笔记)(五)

本笔记汇总了作者认为"JavaScript高级程序设计"这本书的前七章知识重点,仅供参考. 第五章 引用类型 小结: 对象在JavaScript中被称为引用类型的值,而且有一些内置的引用类型可以用来创建特定的对象,现简要总结如下: 引用类型与传统面向对象程序设计中的类相似,但实现不同: Object是一个基础类型,其他所有类型都从Object继承了基本的行为: Array类型是一组值得有序列表,同时还提供了操作和转换这些值的功能: Date类型提供了有关日期和时间的信息,包括当前日期和

JavaScript高级程序设计(读书笔记)(六)

本笔记汇总了作者认为"JavaScript高级程序设计"这本书的前七章知识重点,仅供参考. 第六章 面向对象的程序设计 面向对象(Object-Oriented, OO)的语言有一个标志,那就是它们都有类的概念,而通过类可以创建任意多个具有相同属性和方法的对象.但ECMAScript中没有类的概念,因此它的对象也与基于类的语言中的对象有所不同.ECMAScript把对象定义为:"无序属性的集合,其属性可以包含基本值.对象或者函数."严格来讲,这就相当于说对象是一组没

《Javascript高级程序设计》读书笔记之对象创建

<javascript高级程序设计>读过有两遍了,有些重要内容总是会忘记,写一下读书笔记备忘 创建对象 工厂模式 工厂模式优点:有了封装的概念,解决了创建多个相似对象的问题 缺点:没有解决对象识别问题,所有对象都仅是Object的实例 function createPerson(name,age,job) { var o=new Object(); o.name=name; o.age=age; o.job=job; o.sayName=function(){ alert(this.name)