将“onselect”事件绑定到处理最大字符数的函数。在输入文本字段内

问题描述:

我正在研究限制字符数的函数。用户被允许在输入文本字段内输入。将“onselect”事件绑定到处理最大字符数的函数。在输入文本字段内

这是它:

$.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”事件的方式:

当用户选择用鼠标整个文本和类型的信件或一个数字,整个文本被删除,并出现该字母。

这是什么,当我们要替换一些文本与另一个我们大多数人做的,我想我的功能,使这一点。

任何想法如何?

+0

什么只是'' – adeneo

+0

@adeneo - 从来没有使用过,它是跨浏览器? IE8,也许更低? –

+0

在输入上,它应该可以在任何地方工作,在textarea上,旧版浏览器会出现问题。 – adeneo

如果我可以补充一下,

您的解决方案使用的按键事件,因此该事件被之前触发输入的新值计算。这就是为什么你必须检查像backspace这样的特殊键,请输入 ...这些论文不只是给字符串添加一个字符,所以需要特殊处理。

对于这种类型的处理,让处理器在之后触发来处理字符串计算更为方便。这样,您可以访问输入值并在不正确的情况下对其进行修改。

不幸的是jQuery的不支持这项活动,但你可以用香草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 
}