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

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


当前回答

在我的例子中,我使用Firefox(43.0.4)手动验证最多的是minlength和validity。遗憾的是,“太短”不存在。

由于我只需要存储最小长度就可以继续,一种简单而方便的方法是将这个值赋给输入标记的另一个有效属性。在这种情况下,您可以从[type="number"]输入中使用min、max和step属性。

与其将这些限制存储在数组中,不如将其存储在相同的输入中,而不是获取元素id以匹配数组索引。

其他回答

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

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

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

在@user123444555621固定答案。

在HTML5中有一个minlength属性,但由于某种原因,它可能并不总是像预期的那样工作。

我有一个情况下,我的输入类型文本不遵守minlength="3"属性。

通过使用pattern属性,我设法解决了这个问题。 下面是一个使用pattern来确保minlength验证的例子:

const folderNameInput = document.getElementById("folderName"); folderNameInput.addEventListener('focus', setFolderNameValidityMessage); folderNameInput.addEventListener('input', setFolderNameValidityMessage); function setFolderNameValidityMessage() { if (folderNameInput.validity.patternMismatch || folderNameInput.validity.valueMissing) { folderNameInput.setCustomValidity('The folder name must contain between 3 and 50 chars'); } else { folderNameInput.setCustomValidity(''); } } :root { --color-main-red: rgb(230, 0, 0); --color-main-green: rgb(95, 255, 143); } form input { border: 1px solid black; outline: none; } form input:invalid:focus { border-bottom-color: var(--color-main-red); box-shadow: 0 2px 0 0 var(--color-main-red); } form input:not(:invalid):focus { border-bottom-color: var(--color-main-green); box-shadow: 0 2px 0 0 var(--color-main-green); } <form> <input type="text" id="folderName" placeholder="Your folder name" spellcheck="false" autocomplete="off" required minlength="3" maxlength="50" pattern=".{3,50}" /> <button type="submit" value="Create folder">Create folder</button> </form>

有关更多详细信息,这里是HTML模式属性的MDN链接:https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/pattern

maxlength最聪明的方法

$(“html”)。On ("keydown keyup change", "input", function(){ var最大长度= $(这).attr(最大长度); 如果(最大长度){ = $ var值(这).val (); 如果(value.length < =最大长度){ (美元).attr(“v”,价值); } 其他{ ((这).val美元(这).attr (' v ')); } } }); < script src = " https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js " > < /脚本> <input type="text" maxlength="10">

看到http://caniuse.com/搜索=最小长度。某些浏览器可能不支持此属性。


如果"type"的值是其中之一:

文本,电子邮件,搜索,密码,电话或URL(警告:不包括数字|没有浏览器支持“电话”现在- 2017.10)

使用minlength(/ maxlength)属性。它指定最小字符数。

例如,

<input type="text" minlength="11" maxlength="11" pattern="[0-9]*" placeholder="input your phone number">

或者使用"pattern"属性:

<input type="text" pattern="[0-9]{11}" placeholder="input your phone number">

如果“type”是number,虽然不支持minlength(/ maxlength),但可以使用min(/ max)属性来代替它。

例如,

<input type="number" min="100" max="999" placeholder="input a three-digit number">

我使用了最大值和最小值,这对我来说很有效,但我不确定这是否是一种编码方法。

<input type="text" maxlength="13" name ="idnumber" class="form-control"  minlength="13" required>