Javascript setCustomValidity 不适用于 Chrome 版本 65

2023-12-13

如果您想使用 setCustomValidity 函数设置有效性(如下所示),则不会设置该消息。

<input type="text" id="username" required placeholder="Enter Name"
oninput="setCustomValidity('error')"  />

正如你所看到的,如果你运行这个jsfiddle在 Firefox 和 Chrome 上,您可以看到在 chrome 上该字段没有验证消息。

为了查看正在发生的事情,请转到 Firefox,打开 jsfiddle 并输入一些内容。输入内容后,单击外部并观察到添加了红色边框并显示文本“错误”。

Chrome 有解决方法吗?

Edit:我已经记录了bug关于铬。请随时关注此主题。


对我来说这看起来像是一个错误。我尝试跑步规范中给出的示例, in a JS在这里摆弄。同样,它适用于 Firefox,但不适用于 Chrome。

function check(input) {
  
  if (input.value == "good" ||
    input.value == "fine" ||
    input.value == "tired") {
    input.setCustomValidity('"' + input.value + '" is not a feeling.');
  } else {
    // input is fine -- reset the error message
    input.setCustomValidity('');
  }
}
<label>Feeling: <input name=f type="text" oninput="check(this)"></label>

解决方法可能是使用pattern属性在输入上并提供一个正则表达式来验证输入。

我将使用规范中给出的示例来实现此目的。您可以在pattern属性中设置正则表达式模式,并在title属性中设置错误消息:

<label>Feeling: <input name=f type="text" pattern="((?!(?:good|fine|tired)).+)" title="Input is not a feeling."></label>

这样,您可以使用伪选择器:invalid将红色边框(或其他任何内容)应用于输入:

input:invalid {
  border-color: red;
}
input:invalid {
  border-color: red;
}
<label>
  Feeling:
  <input name=f type="text" pattern="((?!(?:good|fine|tired)).+)" title="Input is not a feeling." value="good">
</label>

Fiddle: https://jsfiddle.net/065thz0w/21/


注意:这种方法的明显缺点是您无法再使用 Javascript 进行验证 - 并且您将无法验证字段组合的值。

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

Javascript setCustomValidity 不适用于 Chrome 版本 65 的相关文章

  • model.save() 返回无效输出

    我正在使用本文中的 Node js mongodb 和express 对 REST Api 进行简单测试 MERN 第一部分 使用 Node js 和 Express 构建 RESTful API https medium com week
  • Firebase HTTP Cloud Functions - 读取数据库一次

    我有 Firebase HTTPs 功能 该函数需要根据查询参数从 Firebase 数据库读取值 并根据该数据返回结果 Firebase JS SDK 表示要使用以下命令来执行此操作 return firebase database re
  • jQuery show() 和 hide() 的更流畅替代方案

    我有一个带有隐藏列的页面设置 使用 jQuery show 和 hide 函数将列滑入和滑出 然而 它有点 笨重 并且在显示 隐藏时看起来不太流畅 相比之下 我还有一个使用 jquery UI 手风琴的页面部分 当在这些部分之间切换时 过渡
  • 如何清除画布元素中的多边形区域?

    我使用过clearRect函数 但没有看到多边形的等效函数 我天真地尝试过 ctx fillStyle transparent ctx beginPath ctx moveTo 0 0 ctx lineTo 100 50 ctx lineT
  • 克隆元素对应表单中所有元素的事件

    我成功克隆了表行 其中包含从数据库检索的值 不过我对它没有什么问题 我对所有元素使用了类 因为克隆会重复 ID 不会出现问题 因为它无法唯一地定位每个元素 使每个元素 行在这里唯一的方法是什么 功能如何工作 当第一次选择框时 所选 ID 的
  • 如何在 Jquery Chosen 插件中搜索乌尔都语?还有其他方法在 Selectbox 中搜索乌尔都语吗?

    基本上我想在选择框中有搜索选项 并在选择框中选择实现的 jquery 所有选项均采用乌尔都语语言 如何扩展所选搜索以匹配乌尔都语 或者还有另一种方法在选择框中搜索乌尔都语 任何其他建议 提前致谢 有一种非常简单的方法可以将所有正则表达式逻辑
  • 监听外部事件。 Bash 到 NodeJS 的桥梁

    在 NodeJS 进程内部 我如何监听来自 bash 的事件 例如 NodeJS side obj on something function data console log data Bash side do something Hel
  • 从画布保存/转换后文件质量下降的问题

    这是我正在使用的代码 代码位于这篇文章的底部 但这里是链接GitHubGist Noitidart ff addon snippet browseForBadgeThenCreateSaveAnApply js https gist git
  • 使用 ECMA 脚本向节点(页面)添加新属性

    我需要在页面激活时向页面添加属性 我决定建立一个工作流程 在激活步骤之前执行相同的操作 我的自定义工作流程步骤 激活步骤之前的步骤 使用 ECMA 脚本来实现此目的 这是我到目前为止所拥有的 var workflowData granite
  • 类型错误:require.config 不是一个函数

    我正在使用 require js 作为早午餐项目的一部分 这段代码抛出错误 require config require config is not a function paths jquery lib jquery underscore
  • 从变量值动态设置 ng-controller

    我正在使用 AngularJs 和 NodeJS 开发一个应用程序 我对将控制器的名称设置为主控制器中的变量的值感到震惊 为了更好地解释它 我的 index html 看起来像这样 tbody tr td td td member task
  • Angular2 - 防止复选框被选中

    我有一个每行包含一个复选框的表 在表头中 我有一个Check All切换所有表格行框的复选框 我正在尝试实现一些逻辑 如果复选框的数量将超过特定限制 则显示错误并且不切换表行复选框或checkall盒子本身 有一个问题允许checkAll即
  • 扩展html表格突出显示行和列并使当前单元格具有不同的颜色

    我找到了用鼠标悬停时突出显示行和列的示例 https stackoverflow com a 28312853 139698 https stackoverflow com a 28312853 139698 如何使鼠标悬停的一个单元格变为
  • Javascript For 循环在 dom 元素上执行[重复]

    这个问题在这里已经有答案了 我有 javascript 代码来获取具有类名称的元素 并迭代从元素中删除该类 var elements document getElementsByClassName test console log Leng
  • 如何让 Grunt.js 和 Meteor.js 协同工作?

    我想在我的 Meteor 应用程序中使用简单的复制和串联 但是当 Meteor 在服务器和客户端上运行所有 javascript 文件时 我遇到了问题 而我不希望它们在任何地方运行 它要么只是配置文件 例如Gruntfile js或我想以某
  • 如何运行 Mike Bostock 的 D3 示例?

    我一直在尝试经营迈克博斯托克透视地球仪 http bl ocks org mbostock 6747043例如 但是如果您尝试在本地重现它 则对其 json 文件的引用是不正确的 问题来自于这行代码 d3 json mbostock raw
  • 跨浏览器相当于explicitOriginalTarget事件参数

    有谁知道跨浏览器等价于explicitOriginalTarget事件参数 该参数是 Mozilla 特定的 它为我提供了导致模糊的元素 假设我的页面上有一个文本输入和一个链接 文本输入具有焦点 如果我点击链接 文本输入的模糊事件会通过ex
  • 通过均匀分布值来有效合并两个数组

    我见过许多问题 答案主题是通过交替值合并两个数组 他们是这样工作的 let array1 a b c d let array2 1 2 let outcome a 1 b 2 c d 但我希望输出更加高效 并且根据数组大小均匀分配值 exp
  • React 嵌入脚本标签不可样式化

    我打算将 SurveyMonkey 调查嵌入到我的网站中 用 React 制作 只是让它工作起来很麻烦 但最终这段代码工作了 let script let extractScript
  • JavaScript 开关(真)

    你好 我正在尝试处理 ajax json 响应 这是我的代码 success function j switch true case j choice1 alert choice2 break case j choice2 alert ch

随机推荐

  • 如何通过 Firebase 管理员通过代理连接到 Firebase?

    目前 我正在使用 Firebase Admin SDK 连接 NodeJS 服务器端应用程序中的 Firebase 数据库 但我没有找到通过代理设置连接 Firebase 的选项 或者它可以检测我的系统HTTP PROXY环境变量 当我运行
  • 控制android中的后退“按钮”

    我想从子活动中获取文本数据值 一切都很好 但是当子活动打开时 我只需单击手机上的后退 按钮 就会抛出异常错误 我在 android NotePad 生命周期控制 toturial 上找到了它 但它很难理解 有人能帮我吗 这是我的代码 pub
  • Entity Framework Core:在 WebAPI 中包含多对多相关对象

    我对 NET 框架不太熟悉 但决定尝试一下 ASP NET Core 和 EF Core 我想制作一个非常简单的 Web API 后端 但在处理多对多关系时遇到问题 我知道我需要为两个实体创建一个关系表 如本文中的示例所示 如何与 EF C
  • 正则表达式 - 超过 10 个字符

    如何指示需要超过 10 个字符的正则表达式 我知道 大于 0 大于 1 但是要求大于 10 的语法是什么 谢谢大家 您使用大括号表示法 例如 正则表达式a 10 将匹配 10 个或更多a人物 a 10 20 将匹配至少 10 个且不超过 2
  • 什么是 REST 资源?

    什么是 REST 资源以及它们与资源名称和资源表示有何关系 我读了一些关于这个主题的文章 但它们太抽象了 让我比以前更加困惑 以下 URL 是资源吗 如果是 该资源的名称是什么以及它的表示形式是什么 URL 的 GET 响应应类似于 id
  • 限制 iPhone 应用程序对服务器的访问

    我正在构建一个客户端 服务器 iPhone 游戏 我希望阻止第三方客户端访问服务器 这有两个原因 首先 我的收入模式是出售客户并赠送服务 其次我想避免促进作弊的客户激增 我正在用 Rails 编写服务器的第一个版本 但我正在考虑在某个时候迁
  • Xamarin,使用 Xlabs 示例中的地理定位

    使用 Xamarin 共享项目 我尝试在我的共享项目中包含 Xlabs 示例中的地理位置功能 但在调用 dependencyService 时遇到问题 我有一个内容页面 其中有我的按钮 其中包含如下命令 Command new Comman
  • Chrome 驱动程序无法在 Azure Web 应用程序上运行

    我使用过 NetCore2 App 并尝试截取给定 URL 的屏幕截图 它在本地运行完美 但部署到 Azure 后在创建 Webdriver 时出现问题 at OpenQA Selenium DriverService ctor Strin
  • LNK1120:1 个未解析的外部和 LNK2019:未解析的外部符号

    我遇到了这两个错误 但似乎找不到有效的解决方案 LNK1120 1 个未解析的外部 错误1错误LNK2019 无法解析的外部符号 public thiscall Vector3D Vector3D class Vector3D const
  • 如何在空手道中将驱动程序上下文从 Android 切换到 webview

    我正在开发一个使用空手道和 appium 自动化移动应用程序的项目 我正在开发的应用程序似乎是一个混合应用程序 当我启动应用程序时 它会将我重定向到要登录的 Web URL Web 浏览器 并且我的空手道测试无法找到登录页面下存在的元素 F
  • StreamGroup.merge 仅重新调整一个流

    我显然误解了如何StreamGroup merge工作原理或流如何工作或两者兼而有之 我有两个流正在查询 firestore 中的同一字段 我正在使用合并来创建一个名为mergedStream 这在 StreamBuilder 中用于为应用
  • 如何根据源字典中值的笛卡尔积创建字典列表(“分解”字典)?

    给定一个看起来像这样的字典 Color Red Yellow Size Small Medium Large 如何创建结合第一个字典键的各种值的字典列表 我想要的是 Color Red Size Small Color Red Size M
  • 同一个应用程序的不同子域可以防止XSS等恶意攻击吗?

    在我的 Rails 应用程序中 我有 2 个子域 one 会员 myapp com这是之间共享的区域所有成员 他们可以登录并管理他们的帐户 二 每个成员在子域上都有自己的网站 如下所示 会员1 myapp com member2 myapp
  • 使用computeSpectrum()返回FFT值进行基音检测

    我正在使用 Actionscript 3 0 for Flash Player 10 3 进行开发 我在用着计算频谱 在加载的 mp3 上 运行 Event ENTER FRAME 以获取 byteArray 中每个样本的快照 ByteAr
  • 如何使用联接更新 DB2 表?

    我有两个表 我想通过加入它们来更新 我使用的是 DB2 V9 7 订单批准 ORDER ID CREATED BY ID CREATED BY NAME PROCESS DT 234 2 admin null 307 2 admin nul
  • 使用 IPython 作为有效的调试器

    如何在我的代码中嵌入 IPython shell 并拥有它自动显示行号 and function它在哪里被调用 我目前有以下设置来将 IPython shell 嵌入到我的代码中 from IPython frontend terminal
  • LuaJava错误处理中的错误

    我正在尝试使用 LuaJava 从 Java 调用一个简单的 Lua 函数 计算 lua function foo n return n 2 end 这就是 calc lua 中的全部内容以及来自命令行工作的后续调用 这是总是有错误的调用
  • Symfony 1.4 已弃用 php 中的函数

    有谁知道这个错误是什么 我需要这方面的帮助Deprecated preg replace The e modifier is deprecated use preg replace callback instead in C xampp h
  • 我可以绘制盒子,但无法将其移除! (帆布)

    我之前问过这个问题 看来我使用的代码非常混乱 所以这实际上是同一代码的简化版本 我使用 add 函数在画布上绘制一个正方形 同样 我应该能够使用删除功能从画 布中删除该项目 唉 事情似乎并没有发生 这是代码 window addEvent
  • Javascript setCustomValidity 不适用于 Chrome 版本 65

    如果您想使用 setCustomValidity 函数设置有效性 如下所示 则不会设置该消息