web前端用jquery实现input属性maxLength效果


      某天突然一个人在群里问,如何实现input输入11位就不让继续输入了,群里大神各显神通,纷纷提出解决办法:

1:input加个属性maxLength=“11”,完美!

2:$("#id").keyup(function(event){

var a=$("#id").val();
if(a.length>num){
$(id).val($("#id").val().substr(0,11));
}

});

      其实这两个方法都挺好的,但是有点不足之处就是第一个在低版本ie下表现不理想。第二个当输入11位以上,会出现输入后

先输入上然后又变没了的很奇怪效果,虽然目的达到了,但是说好的不让输入的呢?而且如果是你用鼠标复制粘贴的话,你获取的a的

值是之前输入的,所以会出问题,各位可以试试;

       解决第二个问题的难点在于,你获取不到你粘贴过来的值的length,所以你无法判断,于是我们想到了propertychange,无论是

粘贴复制,还是直接输入,表现都与maxLength效果一致!于是我封装了jq的写法:

function promiseNum(id,num){
$(id).bind("input propertychange", function() {
var a=$(id).val();
if(a.length>num){
$(id).val($(id).val().substr(0,num));
}

});
}

只要传入input对应的id和你要限制的位数就可以了,完美~~~,有不足的地方,欢迎各位大神指点~~~

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM