0

我正在研究一个限制字符数的函数。允许用户在输入文本字段中输入内容。

就是这个:

$.fn.restringLength = function (id, maxLen) {

            $(id).keypress(function(e){

                var kCode = e.keyCode ? e.keyCode : e.which,

                    len = $(id).val().length;

                if (kCode != 8 && kCode != 46) {

                    if (len > maxLen) e.preventDefault();
                }
            });
        }

该函数绑定按键事件并获取按键的代码。

如果字符。达到限制,它只允许按下删除键和退格键。

它需要很好地工作,是一种绑定“onselect”事件的方法,以便具有以下行为:

当用户用鼠标选择整个文本并键入一个字母或数字时,整个文本将被删除并出现该字母。

当我们想用另一个文本替换一些文本时,这是我们大多数人都会做的事情,我希望我的函数能够启用它。

有什么想法吗?

4

1 回答 1

0

如果我可以添加一些东西,

您的解决方案使用按键事件,因此在计算输入的新值之前触发该事件。这就是为什么您必须检查特殊键的原因,例如退格键,输入...这些不只是在字符串中添加一个字符,因此它们需要特殊处理。

对于这种处理,在字符串计算之后触发​​处理程序更方便。这样,您可以访问输入值并在不正确时对其进行修改。

不幸的是,jquery 不支持此事件,但您可以将它与 vanilla javascript 方法一起使用。

$(id)[0]   // get the vanilla js element
.oninput = function(e){
  this.value = this.value.substr( 0 , 10 )  // this.value contain the string after the key press processing
}
于 2013-11-14T20:59:56.633 回答