html - 当以编程方式设置字段时,如何触发最小长度验证?

标签 html forms validation

我在这样的表单中有一个字段:

<input type="text" minlength="20" name="description" id="description" />

输入时,minlength 验证效果很好。但是,如果以编程方式设置输入的值,则不会触发验证。

var field = document.querySelector("#description");

// type a couple of character into the field
field.validity.tooShort;
// true

field.value = '';
field.validity.tooShort;
// false

有解决办法吗?还是有计划的修复?我用错了吗?

最佳答案

今天偶然发现了这个问题,您可以使用 pattern 验证来解决它:

<input type="text" pattern="^.{20,}$" name="description" id="description" />

JS:

var field = document.querySelector("#description");
field.value = 'too short';
field.validity.patternMismatch;
// true

field.value = 'very very very very very very long';
field.validity.patternMismatch;
// false

关于html - 当以编程方式设置字段时,如何触发最小长度验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47417563/

相关文章:

Javascript如何在html表单提交中使用多个函数来验证

c# - 对 PostBack 创建的类进行不显眼的验证

java - 验证没有 http 的 URL

javascript - 哪个更好 : HTML rendering on server or on client in JS?

javascript - 在文本框中输入某些内容后禁用按钮?

javascript - 如何在 Flask 蓝图中从 HTML POST 变量构建动态路由

ruby-on-rails - 如何使用 simple_form 显示用户列表?

php - 如何使用循环正则表达式和数组验证十六进制颜色?

html - Bootstrap 中心链接和面板正文中的文本

html - 如何阻止我的 DIVS 换行