JavaScript学习14:表单处理

什么是表单?

在HTML中,表单是由<form>元素来表示的,而在JavaScript中,表单对应的则是HTMLFormElement类型。HTMLFormElement继承了HTMLElement,因此它拥有HTML元素的默认属性,并且还独有自己的属性和方法。

获取表单<form>对象的方法有很多种,比如:document.getElementById(“表单标签ID”)、document.getElementsByTagName(‘标签名称’)等等。

提交表单

获取了页面表单对象,就要考虑如何将表单数据提交给后台了。通常的方式是使用submit事件,他的默认行为就是携带数据跳转到指定的页面。我们可以通过事件对象,来阻止submit的默认行为。同时也可以使用submit()方法来自定义触发submit事件,也就是说并不一定要点击submit按钮才能进行提交操作。

提交数据最大的问题就是重复提交表单。因为各种原因,当一条数据提交到服务器的时候会出现延迟等长时间没有响应的情况,导致用户不停的进行提交操作,从而使得重复提交了很多相同的请求,或者造成错误,或者这写入多条相同的信息,而这都不是我们想看到的。

解决办法,简单来说有两个:第一就是提交之后,立刻禁用点击按钮;第二种就是提交之后,进行判断,若已提交过,则取消后续的表单提交提交操作。

了解了上面的基础知识,我们来看两种常用的表单元素:文本框和选择框。

文本框脚本

在HTML中,有两种方式来表现文本框:一种是单行文本框<input type=”text”>,一种是多行文本框<textarea>。虽然<input>在字面上有value值,<textarea>没有,但是我们都可以通过value获取他们的值。至于其他的属性和方法不再赘述,下面看一个比较有意思的东西,过滤输入。

为了使文本框输入指定的字符,我们必须要对输入的字符进行验证。有一种做法是判断字符是否合法,这是提交后操作的。那么我们也可以在提交前限制某些字符,这就是过滤输入。看下代的简单实现:

<span style="font-size:18px;">//屏蔽非数字键的输入
	addEvent(textField,'keypress',function(evt){
		var e=evt||window.event;
		var charCode=getCharCode(evt);
		if(!/\d/.test(String.fromCharCode(charCode))&&charCode>8){
			preDet(evt);
		}
	});</span>

选择框脚本

选择框是通过<select>和<option>元素创建的,除了通用的一些属性和方法外,HTMLSelectElement类型还提供了如下的属性和方法:

在DOM中,每个<option>元素都有一个HTMLOptionElement对象,以便访问数据,这个对象有如下一些属性:

选择框有单选和多选之分,对于单选来说,使用selectedIndex属性最为简单。而对于多选的需求,则使用selected属性更为简单一些。这是判断是否选中,对于选中的按钮如何获取它的值,就要使用checked属性了。

代码示例就不再写了,因为比较简单,都是基础性的,大家有兴趣实践的可以写写代码实现一下单选和多选的功能。

小结一下:

JS的表单处理远远不止这些,比如表单里面的表格、页面的label等等,都是表单的元素,尤其是datagrid控件,它和后台的数据交互比较重要,我们在做各种管理信息系统的过程中,肯定要大量的使用它,因此还有很多的东西需要我们去了解和深入学习。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-08 20:47:58

JavaScript学习14:表单处理的相关文章

bootstrap基础学习【表单含按钮】(二)

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>bootstrap基础学习[表单](二)</title> <link rel="stylesheet" href="css/bootstrap.min.css" /> </head> <body style="padd

Knockout学习之表单绑定器(上)

表单绑定器 “click”绑定 Click 绑定器可以将javascript函数绑定到指定的dom元素,并且再该元素被点击时将触发绑定的函数,大多数情况下都会使用button.input和a元素,当然其他可见的dom元素也是一样可以的.下面我们就简单的举一个例子: 1 <div> 2 你已经点击了<span data-bind="text:numberOfClicks" ></span> 3 <button data-bind="cl

Knockout学习之表单绑定器(下)

“hasFocus”绑定 hasFocus绑定器会将DOM元素的焦点状态与视图模型中的属性相关联,当你设置视图模型中关联的属性为true或false后,将能够设置关键的DOM元素是否获得焦点. 比如下面的例子将会演示如何使用通过代码设置焦点,并且当关联的标签获得焦点后显示一段文本: 1 <div> 2 <input type="text" data-bind="hasfocus: focusState" /> 3 <button typ

JavaScript怎么提交表单!!!

使用JavaScript来提交表单 function inVote(td) { var name = td.name; td.form.action = "vote.jsp?tablename="+name; td.form.submit(); } 1,表单对象.action设置提交的位置 2.表单对象.submit();提交表单 版权声明:本文为博主原创文章,未经博主允许不得转载.

Django学习之表单(forms)

我们的博客现在已经实现了博客列表的查看,博客的查看.现在该是我们实现创建和更新博客的时候了. 要实现博客的创建和更新,我们需要学习Django表单的相关知识. 在处理表单的过程中,Django表单功能做了哪些工作呢? 传递数据的准备和重建 为数据创建HTML表单 从客户端接收和处理提交的表单和数据 Django Form类是系统的核心组件.在django中, 模型描述的是一个对象的逻辑架构,这绵行为,它显现给我们的方式.与此类似,Form类描述的是一个表单和决定它是如何工作和显示的. 一个模型类

JavaScript笔记:表单脚本

JavaScript最初的应用之一,就是分担服务器处理表单的责任,打破处处依赖服务器的局面. 1.表单的基础知识 在javascript中,表单是用HTMLFormElement类型来表示的.HTMLFormElement继承了HTMLElement,因而与其他HTML元素有相同的默认属性,不过HTMLFormElement也有它自己独有的属性和方法: acceptCharset:服务器能够处理的字符集 action:接受请求的URL elements:表单中所有控件的集合 enctype:请求

Codeigniter入门学习笔记14—表单的验证

很久很久以前学习Codeigniter的笔记记录,很随意,但都是自己记录的,希望对需要的人有所帮助. 本文使用word2013编辑并发布 Postbird | There I am , in the world more exciting! Postbird personal website : http://www.ptbird.cn 表单验证 1.add_user ????] 2.form_check() ???? 3. ? 1.加载 ????$this->load->library('f

《JavaScript高级程序设计》Chapter 14 表单脚本

之前就提到了,JS创建之初是为了减少服务器的压力,而当时这个压力主要体现在表单的验证上.与此同时,JS还为WEB表单增加了一些行为. 表单基础知识 go 文本框脚本 go 选择框脚本 go 表单序列化 go 富文本编辑 go JS表单基础知识 JS中获取表单元素(<form>)的方法: 通过id(所有元素通用)getElementById(""); 通过document.form:document.forms[0] 或者 document.forms["formN

[html5] 学习笔记-表单新增的元素与属性(续)

本节主要讲解表单新增元素的controls属性.placeholder属性.List属性.Autocomplete属性.Pattern属性.SelectionDirection属性.Indeterminate属性.Image提交按钮的宽高属性. 1.controls属性 在html5中,可以在标签内部放置一个表单元素,并且通过该标签的controls属性来访问该表单元素. 1 <body> 2 <script> 3 function setValue(){ 4 var label