form.reset() 是如何工作的?

2023-11-23

我知道form.reset()会将所有表单字段重置为其默认值,但这是如何工作的呢?

是浏览器的DOM实现吗?即浏览器知道上次回发/获取中从服务器发送的最后一个值是什么以及何时reset()称为浏览器重置这些值。


DOM 规范tells us它:

...执行与重置按钮相同的操作。

依此类推,转向 HTML。根据最新规格(仍然是草稿!):

当表单元素表单被重置时,用户代理必须在表单上触发一个名为重置的简单事件,该事件是可取消的,然后,如果该事件未取消,则必须调用表单所有者为表单的每个可重置元素的重置算法,并从表单广播 formchange 事件。

每个可重置元素定义其自己的重置算法。作为这些算法的一部分对表单控件所做的更改不计为用户引起的更改(因此,例如,不会导致输入事件触发)。

And the “重置算法”为input元素(例如)是:

...要将脏值标志和脏检查标志设置回 false,请将元素的值设置为 value 内容属性的值(如果有的话),否则设置为空字符串,将元素的检查状态设置为如果元素具有已检查的内容属性,则为 true;如果没有,则为 false,清空选定文件的列表,然后调用值清理算法(如果类型属性的当前状态定义了该算法)。

所以基本上,reset将输入值设置为其“值”的当前值属性 (theElement.getAttribute("value")),可能与当前的不同value property (theElement.value). 活生生的例子在这里。

Edit:哦,佩卡给我们指了指defaultValue。非常酷,我宁愿使用它而不是getAttribute("value"). 修改后的实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

form.reset() 是如何工作的? 的相关文章

  • 检测 iframe 内容加载失败

    我可以使用以下命令检测 iframe 的内容何时加载load事件 不幸的是 就我的目的而言 这有两个问题 如果加载页面时出现错误 404 500 等 则永远不会触发加载事件 如果某些图像或其他依赖项加载失败 则会照常触发加载事件 有什么方法
  • 区分单击与 mousedown/mouseup

    我已经阅读了有关这种情况的 stackoverflow 上的几个答案 但没有一个解决方案有效 我尝试根据用户是否单击某个元素或使用 jQuery 将鼠标按住该元素来执行不同的操作 有可能做到这一点吗 onMouseDown 将在按下左侧或右
  • JSDoc:如何在生成的文档中包含自定义 css 文件模板?

    JS文档docs https jsdoc app about configuring default template html say 将图像目录复制到输出目录 复制全部 将 myproject static 中的静态文件复制到输出目录
  • WebDriver:更改事件未触发

    我有一个使用 KnockoutJS 的应用程序 我正在尝试编写一些测试表单的测试 如果您不了解 KnockoutJS 简单来说 它提供了从我的视图到我的数据模型的绑定 这意味着当我在输入字段中键入值时 我的基础对象会自动使用该输入字段值进行
  • 如何在 JavaScript 中构建一个计算数组中出现次数的对象?

    我想计算数组中某个数字出现的频率 例如 在Python中我可以使用Collections Counter创建一个字典 记录某个项目在列表中出现的频率 据我所知 JavaScript 是这样的 var array 1 4 4 5 5 7 va
  • JointJS - 处理链接删除点击

    创建链接后 将鼠标悬停在其上会显示红色 X 以将其删除 单击此按钮将触发一系列事件 通过订阅 全部 活动收集 单元格 向下指针 链接 向下指针 cell pointermove x5 似乎可疑 单元格 指针向上 在浏览了文档并花费了太长时间
  • 当我尝试转发电子邮件时,时事通讯无法隐藏 Gmail 上的响应内容

    我正在尝试写一份时事通讯 但当我测试时 我无法隐藏响应式内容GMail On Outlook and Yahoo一切正常 但如果我尝试转发电子邮件 隐藏的内容就会可见 我测试使用 putsmail https putsmail com gt
  • 如何在参数上使用 .reduce() 而不是特定的数组或对象?

    我想定义一个函数 flatten 将多个元素展平为一个数组 我知道以下是不可能的 但本质上我想这样做 var flatten function var flattened arguments reduce function acc elem
  • 页面点击其他路径后 $timeout 继续运行

    我在用yo angular fullstack生成器来构建我的网站 当用户注册该网站时 它将发送一封带有链接的激活电子邮件 当用户点击该链接时 会显示激活成功并超时进入主页 但是 当超时未结束 用户点击页面中的任何其他链接时 会跳转到其他页
  • 用于导出到 CSV/Excel 的数据 URI(无服务器端请求):浏览器支持/限制?

    以下问题 Javascript 或 Flash 导出至 CSV Excel https stackoverflow com questions 8150516 javascript or flash export to csv excel
  • Rxjs 可观察等待直到满足某些条件

    我有以下重试逻辑来重试操作 对于单个请求来说它工作得很好 对于多个正在进行的请求 我想在重试之前等待现有的重试逻辑完成 handleError errors Observable
  • Rails 4 - 带有 dependent-fields-rails 的条件 JS

    我正在尝试弄清楚如何在我的 Rails 4 应用程序中使用 dependent fields rails gem 我迷路了 我已将 underscore js 包含在我的供应商 javascripts 文件夹中 并更新了我的 applica
  • 全局定义的 AngularJS 控制器和封装

    根据 AngularJS 的教程 控制器函数仅位于全局范围内 http docs angularjs org tutorial step 04 http docs angularjs org tutorial step 04 控制器函数本身
  • 在外部单击时关闭弹出 div

    我有一个弹出 div 仅在单击特定按钮时显示 单击同一按钮时它甚至会隐藏 我的问题是 我还想在单击外部任何地方时隐藏 div 我无法这样做 因为弹出 div 位于主包装类内部 并且无法通过在包装类上使用 click 事件并使其隐藏来做到这一
  • 页面不会居中对齐

    我遇到了 CSS 问题 http www luukratief design nl dump parallax index html http www luukratief design nl dump parallax index htm
  • CryptoJS 和 Pycrypto 一起工作

    我正在使用 CryptoJS v 2 3 加密 Web 应用程序中的字符串 并且需要在服务器上使用 Python 对其进行解密 因此我使用 PyCrypto 我觉得我错过了一些东西 因为我无法让它工作 这是JS Crypto AES enc
  • 响应式菜单:悬停子菜单显示错误

    简而言之 我根据教程创建了一个响应式菜单 当您将鼠标悬停在投资组合按钮上时 菜单应该显示子菜单 而在移动模式下 您需要按该按钮才能显示子菜单 效果很好 问题是该教程有一个错误 如果您在桌面模式下按组合按钮 子菜单将不会再次显示 除非您按 单
  • 如何在 ChartJS 中创建自定义图例

    我需要使用 ChartJS 库为我的圆环图创建自定义图例 我已经使用 ChartJS 提供的默认图例创建了甜甜圈 但我需要一些修改 我希望其价值高于汽车名称 另外 我不喜欢粘性图例 我想将其与甜甜圈分开 这样我就可以更改字体 框的样式 例如
  • Chrome Prerender 功能每次都会被取消

    我正在尝试 Chrome 中的预渲染功能 但是当我检查网络时 我可以看到任何链接的请求都被取消 我使用以下语法 我尝试了现场演示http prerender test appspot com http prerender test apps
  • 我可以防止将 Leaflet 地图平移到世界边缘之外吗?

    有没有办法限制平移到世界边缘之外 在这幅画中 棕色是世界 灰色是虚空 我想让它不可能像这样平移 Leaflet 允许您控制地图抵抗被拖出边界的程度maxBoundsViscosity选项 值 0 到 1 将其设置为最大值会完全禁用拖动出界

随机推荐

  • jqGrid - 动态设置标题

    我有captionjqGrid 定义中的参数集 我想知道是否有一种方法可以根据情况动态设置它classjqGrid 插件所附加的表元素的属性 HTML 1 table class view table div div HTML 2 tabl
  • 在 Linux 机器上创建自解压 zip 存档

    由于许多我不会涉及的限制 我必须在 Linux 机器上创建一个自解压 ZIP 存档 生成的存档只能在 Windows 上执行 这是可能吗 如果是这样 什么工具可以完成这项工作 背景 当用户从我的 Linux 盒子下载安装包时 我需要使用某个
  • 如果在单独的类中定义异常子句,Camel 异常处理将不起作用

    我正在尝试构建一个具有多个骆驼路线的应用程序 这些路线在内部重用许多常见路线 因此 我尝试将路由分隔在几个不同的路由生成器类中 然后在需要的地方连接路由 例如 与发送电子邮件有关的所有路由都进入 EmailRouteBuilder 类 而处
  • 使用 Laravel (Localhost) 通过表单将文件发送到电子邮件

    Laravel 新手 所以要友善 哈哈 我的 mail php 配置是正确的 并且可以成功接收电子邮件以进行 gmail 的文本输入 但不确定如何完成文件任务 我希望得到一些帮助或参考链接 提前致谢 代码在routes php中 Route
  • iOS 8 CoreBluetooth 已弃用 RSSI 方法

    所以从阅读CBPeripheralDelegate文档 看来RSSI and peripheralDidUpdateRSSI error iOS 8 中已弃用 Xcode 警告 iOS 8 0 中已弃用 rssi 我注意到我的信号强度指示器
  • 测量 Cortex m7 上的时钟周期数

    我一直在测量 Cortex m4 上的时钟周期计数 现在想在 Cortex m7 上进行测量 我使用的板子是STM32F746ZG 对于 m4 一切都适用 volatile unsigned int DWT CYCCNT volatile
  • R光栅包将图像分割成多个

    我有一个如下图 它是2579 2388像素 假设它的左下角位于 0 0 我想从该图像创建多个图像 如下所示并将它们保存在工作文件夹中 每个图像的大小为 100 100 像素 每个图像将通过其左下角坐标保存 第一张图像的左下角位于 0 0 右
  • 将通用列表转换为 CSV 字符串

    我有一个整数值列表 List 并且想生成一串逗号分隔值 即列表中的所有项目输出到单个逗号分隔列表 我的想法 1 将列表传递给方法 2 使用stringbuilder迭代列表并追加逗号 3 测试最后一个字符 如果是逗号 则将其删除 你怎么看
  • 在 dataclass(slots=True) 子类中调用 super() 时出现类型错误

    我试图从数据类调用超类方法slots True在 Python 3 10 5 中 from dataclasses import dataclass dataclass slots True class Base def hi self p
  • TK框架双重实现问题

    我正在测试使用 Tkinter 模块创建 GUI 我试图使用 PIL 将图像添加到 GUI 我的代码如下所示 import Tkinter as tk from PIL import Image ImageTk root tk Tk roo
  • 未找到活动数据。使用谷歌分析 v4

    我收到此错误 I GAV4 7915 Thread GAThread 5 main 未找到活动数据 有人知道我出了什么问题吗 我正在使用 Android API 级别 20 谷歌分析 v4 安卓设备4 2 2 Constants TRACK
  • 对 HTML 实体进行编码但忽略 HTML 标签 - 在 PHP 中

    我有一个可能看起来像这样的字符串 str p Me Mrs Jones br live in strong style color FFF Espa a strong p htmlentities str ENT COMPAT UTF 8
  • 在node.js中使用formidable和express时如何更改上传路径

    实际上我遇到了两个问题 一 如何更改上传路径 我的文件夹结构是这样的 app js upload 我的节点代码位于 app js 中并从中启动 所以我想将上传图片上传到上传文件夹 我更改路径 var form new formidable
  • iOS 11 禁用密码自动填充附件视图选项?

    截至目前 我想选择退出 iOS 11 提供的新选项 即在应用程序中建议密码 当我在 iOS 11 上运行该应用程序时 我在键盘顶部看到自动填充选项 但我的用户名和密码文本字段甚至不显示 所以 我的问题是 如何一起禁用新密码自动填充功能 以便
  • WPF 中的 DialogResult 与FolderBrowserDialog

    我第一次在 WPF 中实现FolderBrowserDialog 但我一点也不喜欢它 除了我发现我的项目中没有引用 Windows Forms 的问题之外 现在我在尝试查看 DialogResult 返回值是什么时遇到了麻烦 对于 Open
  • MSBuild如何找到Delphi搜索路径?

    如果我启动 RAD Studio 命令提示符并运行 msbuild t Rebuild 在项目目录中 msbuild 将显示调用 dcc32 的完整命令行 包括所有路径设置 MSBuild 使用哪种魔法来根据 IDE 设置 存储在注册表中
  • 多次加密(MD5)可以提高安全性吗?

    我看到有人用 MD5 对用户密码进行多次加密以提高安全性 我不确定这是否有效 但看起来不太好 那么 这有意义吗 我们假设您使用的哈希函数是一个完美的单向函数 然后你可以像查看它的输出一样查看它的输出 随机神谕 其输出值在有限的值范围内 MD
  • Titanium appcelerator 是否值得在 ipad、iphone 和 android 上开发基于相机的应用程序? [关闭]

    Closed 这个问题是基于意见的 目前不接受答案 我想构建一个手机 平板电脑应用程序 其核心功能是用相机拍照 查看图片和接收通知 我还想针对 iphone ipad 和 android 平台 Titanium appcelerator 因
  • 如何使用 boto3 在 2 个不同帐户的 S3 存储桶之间复制文件

    我正在尝试使用 boto3 将文件从供应商 S3 存储桶传输到我的 S3 存储桶 我正在使用 sts 服务来承担访问供应商 s3 存储桶的角色 我能够连接到供应商存储桶并获取存储桶的列表 我遇到CopyObject operation Ac
  • form.reset() 是如何工作的?

    我知道form reset 会将所有表单字段重置为其默认值 但这是如何工作的呢 是浏览器的DOM实现吗 即浏览器知道上次回发 获取中从服务器发送的最后一个值是什么以及何时reset 称为浏览器重置这些值 DOM 规范tells us它 执行