将“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”事件的方式:
当用户选择用鼠标整个文本和类型的信件或一个数字,整个文本被删除,并出现该字母。
这是什么,当我们要替换一些文本与另一个我们大多数人做的,我想我的功能,使这一点。
任何想法如何?
答
如果我可以补充一下,
您的解决方案使用的按键事件,因此该事件被之前触发输入的新值计算。这就是为什么你必须检查像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
}
什么只是'' – adeneo
@adeneo - 从来没有使用过,它是跨浏览器? IE8,也许更低? –
在输入上,它应该可以在任何地方工作,在textarea上,旧版浏览器会出现问题。 – adeneo