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