资讯专栏INFORMATION COLUMN

表单脚本

stormgens / 1237人阅读

摘要:文本框脚本有两种方式表现文本框的单行文本框和的多行文本框。对于单行文本框,通过特性可以指定文本框能够显示的字符数,通过特性访问其内容,而则用于指定其可以接受的最大字符数。

title: 表单脚本
date: 2016-12-19 15:17
tags: JavaScript

0x00 表单基础

在 HTML 中,表单由

元素来表示,但是在 JavaScript 中,表单对应的是 HTMLFormElement 类型,它具有的一些独有的属性和方法。

action: 接收请求的 URL

elements: form 中所有控件的集合

length: form 中控件的数量

method: 要发送的 HTTP 请求类型

name: 表单的名称

reset(): 重置 form 域为默认值

submit(): 提交 form

target: 用于发送请求和接收响应的窗口的名称

acceptCharset: 服务器能够处理的字符集

enctype: 请求的编码类型。

查找表单
// 通过 ID 查找
var form = document.querySelector("#form1");

// 通过 document.forms 集合查找
var firstForm = document.forms[0] // 索引查找
var myForm = document.forms["form2"] // 取得 name 为 form2 的表单
提交表单
// 通用提交表单


// 自定义提交表单


// 图像按钮
阻止表单提交的默认行为
var form = document.querySelector("#myForm")
EventUtil.addHandler(form, "submit", function(event){
    // 取得事件对象
    event = EventUtil.getEvent(event)
    
    var target = EventUntil.getTarget(event)
    
    // 阻止默认事件
    EventUtil.preventDefault(event);
    
    // 取得提交按钮
    var btn = target.elements["submit-btn"]
    
    // 验证表单
    // do something
    
    // 禁用提交按钮
    btn.disabled = true
})

为避免用户重复提交,应该在第一次提交表单以后就禁用提交按钮,或者利用 onsubmit 事件处理程序取消后续的表单提交操作

如上,要在第一次点击后就禁止提交,只需要监听 submit 事件,并在该事件发生时禁用提交表单按钮即可。

表单字段

通过 formelements 属性可以获得所有表单字段,然后可以安装索引或者 name 特性来访问它们。

如果多个表单控件都使用一个 name ,那么会放回一改 name 命名的一个 NodeList 集合

共有的表单字段属性

共有的表单字段属性:

disabled: 布尔值,表示当前字段是否被禁用

form: 指向所属的 form

name: 当前字段的名称

type: 当前字段的类型

除了

之外,所有的表单都有 type 属性,对于 元素,
该值等于 HTML 的 type 值。

对于元素该值如下:

:type 属性值 select-one

:type 属性值 select-multiple

共有的方法和事件

每个表单字段都有两个方法:focus()blur() 方法。

此外,所有表单字段都支持下列 3 个事件:

blur: 字段失去焦点时 触发

focus: 字段获得焦点时触发

change: 对于 选择文本