Javascript高级编程学习笔记(74)—— 表单(2)表单提交及重置

时间:2022-08-25 00:23:32

表单提交

表单的很大一部分作用就是帮助用户完成和服务器的交互

所以表单提交是表单中比较重要的部分

虽然现如今的大部分应用场景都使用 AJAX 的异步请求来代替表单,但是仍有部分操作需要使用表单来完成,例如上传文件等

表单的提交一般来说是通过图像按钮,或者提交按钮来实现的

提交按钮既可以是 input 元素 也可以是 button 元素,如下所示:

<!--通用提交按钮-->
<input type = "submit" value = "Submit Form"> <!--自定义提交按钮-->
<button type = "submit">Submit Form </button> <!--图像按钮-->
<input type = "image" src = "loading.gif">

这些按钮在拥有焦点的情况下 按下表单就会提交;当然点击这些按钮也会提交

当通过这种方式提交表单时,浏览器会在将请求发送给服务器之前触发 submit 事件

该事件通常用于验证用户发送的信息,以便减轻服务器的负担

此外,通过阻止该事件的默认行为可以取消表单的提交

如下所示:

var form = document.forms[0]; // 获取页面的第一个表单

form.addEventListener("submit",function(event){
event.preventDefault();// 阻止默认事件,即就算点击了提交按钮也不会发送给服务器
},false)

当然我们也可以通过 submit 方法来提交表单:

form.submit();// 提交表单这里的 form 和上方代码中form一样

需要注意的是:调用submit方法并不会触发 submit 事件,所以我们在使用JS代码提交之前需要对表单信息进行验证

此外表单提交可能出现的最大问题就是重复提交,所以在处理时最好在第一次表单信息发送给服务器后将提交按钮禁用,或者取消后续的提交

重置表单

有时候我们需要重置表单的信息

只要 type 为 reset 的 input 或 button 元素都可以创建重置按钮

<!--通用重置按钮-->
<input type = "reset" value = "Reset"> <!--自定义重置按钮-->
<button type = "reset">Reset</button>

通过重置按钮重置表单时,所有表单字段会恢复到页面加载完成的初始状态

同样,在我们单击(或回车)重置按钮时,浏览器会触发 reset 事件

我们也可以通过阻止 reset 事件的默认行为来阻止浏览器的重置:

var form = document.forms[0]; // 获取页面的第一个表单

form.addEventListener("reset",function(event){
event.preventDefault();// 阻止默认事件,阻止浏览器的重置
},false)

同样,通过 reset 方法 我们可以通过代码来触发页面的重置

form.reset();

通常来说用到重置的地方很少,因为用户在你重置表单之后并不一定有耐心再重新填写一遍

所以在使用时要十分小心

Javascript高级编程学习笔记(74)—— 表单(2)表单提交及重置的更多相关文章

  1. Javascript高级编程学习笔记(75)—— 表单(3)表单字段

    表单字段 表单作为web应用中不可或缺的一部分,当然也是可以使用原生的 DOM 元素来访问的 除了标准的访问方式之外,每个表单都拥有一个 elements 属性,该属性保存着该表单所有 表单元素 的集 ...

  2. JavaScript高级程序设计学习笔记第十四章--表单

    1.在 HTML 中,表单是由<form>元素来表示的,而在 JavaScript 中,表单对应的则是 HTMLFormElement 类型. HTMLFormElement 继承了 HT ...

  3. Javascript高级编程学习笔记(80)—— 表单(8)表单序列化

    表单序列化 随着 Ajax 的出现,表单序列化成为一种常见需求 以将表单信息序列化为查询字符串为例 我们可以利用表单的 type 属性,以及 name 和 value 实现对表单的序列化 序列化应满足 ...

  4. Javascript高级编程学习笔记(78)—— 表单(6)HTML约束验证API

    自动切换焦点 使用JS可以极大地提升表单的易用性 其中最常用的一种就是当用户填写完当前字段后焦点自动切换到下一个字段 以下方的HTML代码为例: <input type="text&q ...

  5. Javascript高级编程学习笔记(77)—— 表单(5)过滤输入

    在日常实践中,我们常常会需要用户按照某种规则输入数据 但是文本框在默认情况下缺少验证数据的手段,因此需要使用JS来完成此类过滤输入的操作 通过事件和DOM的结合手段就能够将普通的文本框转换为功能型控件 ...

  6. Javascript高级编程学习笔记(73)—— 表单(1)表单基础

    表单 JS最初的一个用途就是帮助服务器分担处理表单的责任 时至今日,虽然web应用以及JS都有了长足的发展,但是表单依然是现在web应用中比较重要的部分. 因为默认的表单控件很丑,所以有时候我们会使用 ...

  7. Javascript高级编程学习笔记(79)—— 表单(7)选择框脚本

    选择框脚本 选择框由<option>和<select>元素创建,为了方便选择框的交互,除了提供表单字段的公有方法之外 HTMLSelectElement 类型还提供下列特有的属 ...

  8. Javascript高级编程学习笔记(76)—— 表单(4)选择文本

    文本框脚本 在HTML中文本框有两种实现方式: <input> <textarea> 这两种实现方式虽然在多数情况下表现一致,但是两者之间仍存在许多重要区别 对于<inp ...

  9. Javascript高级编程学习笔记(51)—— DOM2和DOM3(3)操作样式表

    操作样式表 在JS中样式表用一种类型来表示,以便我们在JS对其进行操作 这一类型就是CSSStyleSheet 即CSS样式表类型,包括了之前 style 对象所不包括的外部样式表以及嵌入样式表 其中 ...

随机推荐

  1. android&period;view&period;InflateException&colon; Binary XML file line &num;34&colon; Error inflating class

    问题一般出在xml的第三方View的全类名,你可能是直接粘贴过来的,没有改成自己项目的全类名.

  2. UIBUTTON titlelabel&period;text 不显示

    button.titlelabel.text=@"查询";设置后运行发现没事正确显示. 查找后原来UIButton分状态的,textLabel不管用 [button setTitl ...

  3. LINUX二十个基础命令

    LINUX二十个基础命令 一. useradd命令 1.命令格式: useradd 选项 用户名 2.命令功能: 添加新的用户账号 3.常用参数: -c comment 指定一段注释性描述.-d 目录 ...

  4. Windows 10 下ASP&period;NET4&period;0尚未在Web服务器上注册

    系统换成Win10后,打开VS2012出现如下问题: 网上查找了,大部分都是 C:\WINDOWS\Microsoft.NET\Framework64\v4.0.30319 并管理员运行aspnet_ ...

  5. 【转】来自GDXB大大大大的小总结

    一  最短路 模型一 增加限制 例:给定一个图,求起点到终点的最短路,其中你可以使用最多k次机会使某条边的边权变为x. 解法:把每个点拆成k个点,分别表示还能使用多少次机会,构造新图. 模型二 一个点 ...

  6. linux sed使用

    原文引用:http://www.cnblogs.com/ggjucheng/archive/2013/01/13/2856901.html [root@www ~]# sed [-nefr] [动作] ...

  7. javaSE读取Properties文件的六种方法

    使用JavaSEAPI读取Properties文件的六种方法 1.使用java.util.Properties类的load()方法 示例:InputStreamin=lnewBufferedInput ...

  8. js--性能优化(转)

    前言 一直在学习javascript,也有看过<犀利开发Jquery内核详解与实践>,对这本书的评价只有两个字犀利,可能是对javascript理解的还不够透彻异或是自己太笨,更多的是自己 ...

  9. luogu P2113 看球泡妹子

    2333 这么水的蓝题 f[i][j] 表示看了i场比赛,小♀红的什么东西为j时小♂明的什么值 强行压维蛤蛤 剩下的转移很简单(注意i的循环顺序从后往前,01背包) (具体见代码) #include& ...

  10. Gridview利用DataFormatString属性设置数据格式

    首 先把Gridview的AutoGenerateColumns属性设为False(默认是False),DataField选择相应的字段,特别需要注 意的是要把需要设置的字段的HtmlEncode属性 ...