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

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


当前回答

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>

其他回答

看到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">

现在HTML5规范中有一个minlength属性,以及有效性。tooShort接口。

现在所有现代浏览器的最新版本都启用了这两个功能。具体操作请参见https://caniuse.com/#search=minlength。

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">

同时添加最大值和最小值。您可以指定允许的值的范围:

<input type="number" min="1" max="999" />

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

   // 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;