javascript - 如何以编程方式在输入类型 = 数字中设置无效值?
问题描述
我想为 type=number 的输入元素设置一个无效值。
我正在为我的组件编写单元测试,它使用 type=number 的输入,它的行为取决于输入是否为空。请注意,我将像 '1.2.3' 这样的无效值视为非空,即使它的 value 属性是 ''。虽然浏览器中的用户可以输入像“1.2.3”这样的无效值,但我无法为我的测试模拟它。
// let input be HTMLInputElement
input.value = '1.2.3';
console.log(input.value); // ""
console.log(input.validity.valid); // true
我想以某种方式为我的输入 type=number 设置无效值,所以我可以测试我的组件的逻辑是否有效。
解决方案
您可以使用
input.setCustomValidity("dummy value");
做出input.validity.valid
回报false
。
要了解其工作原理,请参阅此 CodePen。它的作用是设置一条错误消息,指示输入无效。要使其再次显示有效,请使用
input.setCustomValidity("");
推荐阅读
- php - Laravel - 对于某些具有相同 mime 的文件,文件 mimetype 验证失败
- wordpress - 结帐期间的 Woocommerce update_status() ... 是否可以在电子邮件中包含转换 $note ?
- android - 列出奇数/偶数项目的两种不同设计
- java - 文件是文档对象吗?
- java - 尝试将 java spring 应用程序部署到 Oracle web 逻辑集群 java.lang.ArrayIndexOutOfBoundsException 时出错:52304
- c# - C# - 仅使用选项的字符串名称设置 CRM OptionSetValue
- javascript - 当 .then 方法未被调用时,Promise 是如何运行的?
- vba - 在两个不同的列中查找包含两个单元格值的行
- django - 如果用户被删除并且外键设置为models.SET_NULL,用户评论会发生什么
- javascript - Tensorflow JS,自定义损失函数,拼凑