(jquery)masked input plugin在达到maxlength时覆盖文本

时间:2014-01-02 16:44:47

标签: jquery input

假设我有这样的输入:

$('#phone').mask("?99999", { placeholder: "" });

如果我输入'12345',请将光标放在34之间,然后按1,文字就像: '12314'

我希望像maxlength这样的行为可以在达到限制时阻止任何其他字符,因此如果maxlength = 5,文字将会保留为“12345”。

这是插件:http://digitalbush.com/projects/masked-input-plugin/

5 个答案:

答案 0 :(得分:1)

修改

首先,使用此处How do I keep existing values from shifting to the right when entering keypresses into a jQuery Masked Input?中找到的解决方案来避免在按键上向右移动字符的掩码插件行为。

然后,在输入

上设置maxlength作为属性
<input type="text" id="phone" maxlength="5">

这将限制输入长度。

答案 1 :(得分:1)

使用jQuery将其添加为属性对我有用:

$('#phone').mask("?99999", { placeholder: "" }).attr('maxlength', 5);

答案 2 :(得分:0)

在输入元素上放置一个MAXLEN。

答案 3 :(得分:0)

理解你想要实现的目标。

假设你有一个这样的文本框:

<input type="text" name="username" id="username">

输入验证的jquery代码是:

$('#username').on('input', function() {

     var value = $('#username').val();

    if (value.length == '5') {
       $('#username').attr('readonly', true);


    }
});

我为你做了一个小伙伴。试试这个 : http://jsfiddle.net/4Rxh7/1/

答案 4 :(得分:0)

试试这个:

HTML:

<input type="text" name="username" id="username" maxlength="5">

的javascript:

$('#username').on('keydown', function(event) {

    var txtBox = $('#username');
    if (txtBox.attr("maxlength") == txtBox.val().length) {
        event.preventDefault();
        event.stopPropagation();
    }
});
$('#username').mask("?99999", { placeholder: "" });