<input>字段的minlength属性似乎不起作用。

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


当前回答

这是html5的唯一解决方案(如果你想要minlength 5, maxlength 10字符验证)

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

< >形式 <输入模式= "。{5 10}" > <input type="submit" value="Check"></input> > < /形式

其他回答

我使用maxlength和minlength,无论是否需要,它对我来说都非常适合HTML5。

<输入id=“passcode”类型=“minlength”密码=“8”,maxlength=“10”>

`

我的解决方案textarea使用jQuery和结合HTML5需要验证,以检查最小长度。

minlength.js

$(document).ready(function(){
  $('form textarea[minlength]').on('keyup', function(){
    e_len = $(this).val().trim().length
    e_min_len = Number($(this).attr('minlength'))
    message = e_min_len <= e_len ? '' : e_min_len + ' characters minimum'
    this.setCustomValidity(message)
  })
})

HTML

<form action="">
  <textarea name="test_min_length" id="" cols="30" rows="10" minlength="10"></textarea>
</form>

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

<input type="text" minlength="2" required>

但是,与HTML5的其他功能一样,IE11在这个全景图中是缺失的。所以,如果你有一个广泛的IE11用户基础,考虑使用模式HTML5属性,几乎所有的浏览器(包括IE11)都支持它。

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

<input type="text" pattern=".{2,}" required>

在使用模式时,仍然存在一个小的可用性问题。在使用pattern时,用户将看到一条非直观的(非常通用的)错误/警告消息。查看jsfiddle或下面:

在每个表单中输入1个字符并按submit</h3> < / h2 > <形式action = " # " > Input with minlength: < Input type="text" minlength="2" required name="i1"> <input type="submit" value=" submit" > > < /形式 < br > <形式action = " # " > Input with patern: < Input type="text" pattern="。{2,}" required name="i1"> <input type="submit" value=" submit" > > < /形式

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

Please lengthen this text to 2 characters or more (you are currently using 1 character)

通过使用minlength和

Please match the format requested

通过使用模式。

这是html5的唯一解决方案(如果你想要minlength 5, maxlength 10字符验证)

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

< >形式 <输入模式= "。{5 10}" > <input type="submit" value="Check"></input> > < /形式

如果需要这种行为,总是在输入字段上显示一个小前缀,否则用户不能删除前缀:

   // prefix="prefix_text"
   // If the user changes the prefix, restore the input with the prefix:
   if(document.getElementById('myInput').value.substring(0,prefix.length).localeCompare(prefix))
       document.getElementById('myInput').value = prefix;