HTML5中是否有minlength验证属性?

emi*_*lan 587 html5 html5-validation

看起来字段的minlength属性<input>不起作用.

HTML5中是否还有其他属性可以帮助我设置字段值的最小长度?

use*_*621 1283

您可以使用该pattern属性.该required属性也是必需的,否则将从约束验证中排除具有空值的输入字段.

<input pattern=".{3,}"   required title="3 characters minimum">
<input pattern=".{5,10}" required title="5 to 10 characters">
Run Code Online (Sandbox Code Playgroud)

如果要创建将模式用于"空或最小长度"的选项,则可以执行以下操作:

<input pattern=".{0}|.{5,10}" required title="Either 0 OR (5 to 10 chars)">
<input pattern=".{0}|.{8,}"   required title="Either 0 OR (8 chars minimum)">
Run Code Online (Sandbox Code Playgroud)

  • +1使用html5而不是jQuery.我只是想补充一点,title属性允许您设置消息,以便在不满足模式时显示给用户.否则将显示默认消息. (137认同)
  • 不幸的是,这不支持textareas**. (57认同)
  • @ChaZ @Basj您可以通过添加以下属性来添加自定义错误消息:`oninvalid ="this.setCustomValidity('Your message')"` (27认同)
  • @ J.Money它仍然说"请匹配请求的格式:<title>".有没有办法绕过先前的默认消息? (11认同)
  • 如果您输入了无效输入并且您正在使用`setCustomValidity`,那么即使您更正了输入,它仍将继续显示错误消息.您可以使用以下`onchange`方法来解决此问题.**`oninvalid ="this.setCustomValidity('Field必须包含最少5个字符')"onchange ="try {setCustomValidity('')} catch(e){}"`** (6认同)
  • 完全有效,但是在不满足模式要求时得到的错误是:"请匹配所请求的格式"或类似的东西.它引出了后续问题:如何自定义错误消息:-) (5认同)
  • 我喜欢那些反对"不是没有javascript"答案的答案.:) (3认同)
  • 如果您使用的模式为"空或最小长度",则需要删除"必需"(至少对于Chrome). (3认同)
  • 如果输入类型为数字,则此方法无效。有什么解决办法吗? (2认同)

rhg*_*hgb 150

目前一个minlength房地产HTML5规范现在,还有validity.tooShort接口.

两者现在都在所有现代浏览器的最新版本中启用.有关详细信息,请参阅https://caniuse.com/#search=minlength.

  • 更新此Stack Overflow答案状态的定期注释比告诉人们在此处查看当前信息更有用:http://caniuse.com/#search=minlength (13认同)
  • Chrome或Opera之外仍然不支持.http://caniuse.com/#search=minlength (2认同)
  • 我看到了这一点,但它仍然对我不起作用。我也需要设置,但仍然没有根据最小长度进行验证。不知道为什么。 (2认同)

Ali*_*ğlu 17

这是HTML5专用解决方案(如果你想要minlength 5,maxlength 10字符验证)

http://jsfiddle.net/xhqsB/102/

<form>
  <input pattern=".{5,10}">
  <input type="submit" value="Check"></input>
</form>
Run Code Online (Sandbox Code Playgroud)

  • [几个月前]给出了相同的"模式"答案(http://stackoverflow.com/a/10294291/1269037).这个答案怎么更好? (7认同)
  • 如果字段不正确,如何设置自定义错误消息? (3认同)
  • 对于自定义消息,添加带有所需消息的 `title` 属性。 (2认同)

Soh*_*edM 11

是的,就是这样.这就像maxlength.W3.org文档:http: //www.w3.org/TR/html5/forms.html#attr-fe-minlength

如果minlength不起作用,请使用pattern@ Pumbaa80提到的属性作为input标记.

对于textarea: 设置最大值; 使用maxlength和分钟去这个链接.

你会在这里找到最大和最小.


ben*_*033 8

我使用或不使用 maxlength 和 minlength,required它对我来说非常适合 HTML5。

<input id="passcode" type="password" minlength="8" maxlength="10">
Run Code Online (Sandbox Code Playgroud)

`


Val*_*der 5

minLength属性(与maxLength不同)在HTML5中本身不存在.但是,有一些方法可以验证字段是否包含少于x个字符.

在此链接中使用jQuery给出了一个示例:http://docs.jquery.com/Plugins/Validation/Methods/minlength

<html>
<head>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
  <script type="text/javascript" src="http://jzaefferer.github.com/jquery-validation/jquery.validate.js"></script>
<script type="text/javascript">
jQuery.validator.setDefaults({
    debug: true,
    success: "valid"
});;
</script>

  <script>
  $(document).ready(function(){
    $("#myform").validate({
  rules: {
    field: {
      required: true,
      minlength: 3
    }
  }
});
  });
  </script>
</head>
<body>

<form id="myform">
  <label for="field">Required, Minimum length 3: </label>
  <input class="left" id="field" name="field" />
  <br/>
  <input type="submit" value="Validate!" />
</form>

</body>
</html>
Run Code Online (Sandbox Code Playgroud)


mik*_*1aj 5

不是HTML5,但实际上是实用的:如果你碰巧使用AngularJS,你可以使用ng-minlength输入和textareas.另见Plunk.

  • 亲爱的标准粉丝,[你也可以使用`data-ng-minlength`](https://docs.angularjs.org/guide/directive#normalization). (4认同)

tal*_*ony 5

我注意到有时在 Chrome 中,当自动填充打开并且字段是自动填充浏览器内置方法的字段时,它会绕过最小长度验证规则,因此在这种情况下,您必须通过以下属性禁用自动填充:

自动完成=“关闭”

<input autocomplete="new-password" name="password" id="password" type="password" placeholder="Password" maxlength="12" minlength="6" required />
Run Code Online (Sandbox Code Playgroud)


Gab*_*vay 5

minlength属性现在在大多数浏览器中得到广泛支持。

<input type="text" minlength="2" required>
Run Code Online (Sandbox Code Playgroud)

但是,与其他 HTML5 功能一样,此全景图中缺少 IE11。因此,如果您拥有广泛的 IE11 用户群,请考虑使用大多数浏览器(包括 IE11)pattern几乎全面支持的HTML5 属性。

为了有一个漂亮而统一的实现,并且可能是可扩展的或动态的(基于生成 HTML 的框架),我会投票支持该pattern属性:

<input type="text" pattern=".{2,}" required>
Run Code Online (Sandbox Code Playgroud)

还有一个小的可用性捕捉使用时pattern。用户在使用pattern. 请参阅此 jsfiddle或以下内容:

<input type="text" minlength="2" required>
Run Code Online (Sandbox Code Playgroud)

例如,在 Chrome 中(但在大多数浏览器中类似),您将收到以下错误消息:

Please lengthen this text to 2 characters or more (you are currently using 1 character)
Run Code Online (Sandbox Code Playgroud)

通过使用minlength

Please match the format requested
Run Code Online (Sandbox Code Playgroud)

通过使用pattern.