是否有更好的选项用jquery强制输入字段的长度

时间:2014-02-11 15:50:33

标签: javascript jquery html5

是否有更好的方法来确保最大长度?我注意到maxlength和even max value属性在某些html5输入类型的所有浏览器中都不起作用:

我这样做是为了确保它有效,但有更清洁的选择吗?

的javascript / jquery的:

 var checkLength = function(element, maxlength) {
     elementValue = $(element).val();
     if($(element).val().length > maxlength) {
         $(element).val(elementValue.substr(0, maxlength));
     };
 }

HTML:

 <input name="myNumberField" id="myNumberField" type="tel" onKeyUp="checkLength(this, 5);" />

关于这个的任何想法?

2 个答案:

答案 0 :(得分:0)

jquery有form validation plugin可以处理这个问题。它甚至告诉用户他们输入的字符太多或太少。代码看起来像这样:

$("#"+formname).validate({
    rules: {
        myNumberField: {
            required: true,
            minlength: 4,
            maxlength: 50
        },
        // etc
    }
});

答案 1 :(得分:0)

/ *编辑:

你可以这样做:

$("input").keypress(function(e) {
    if($(this).val().length > 30) {
         e.stopPropagation(); //or e.preventDefaut(); don't remember
    }
});

但是你必须在服务器端控制它;)

编辑* /

有2种电源解决方案:

纯HTML:

<input type="text" id="Textbox" name="Textbox" maxlength="10" />

javascript one(将其附加到onKey事件):

function limitText(limitField, limitNum) {
    if (limitField.value.length > limitNum) {
        limitField.value = limitField.value.substring(0, limitNum);
    } 
}

但无论如何,没有好的解决方案。你不能适应每个客户的糟糕HTML实现,这是一场不可能的胜利。这就是为什么在服务器端使用PHP / Python /任何脚本检查它会好得多。

check this topic