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和你要限制的位数就可以了,完美~~~,有不足的地方,欢迎各位大神指点~~~

 

转载于:https://www.cnblogs.com/xxwei/p/7444883.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值