2012-09-13 44 views
13

Tôi muốn giới hạn số ký tự trong trường nhập văn bản.Văn bản giới hạn Jquery trong hộp nhập

Mã Tôi đang sử dụng:

function limitText(field, maxChar){ 
    if ($(field).val().length > maxChar){ 
     $(field).val($(field).val().substr(0, maxChar)); 
    } 
} 

tổ chức sự kiện là onkeyup. Khi tôi nhập một số văn bản trong con trỏ trường đầu vào ở cuối văn bản nhưng tiêu điểm được sao lưu ở đầu văn bản để tôi không thể nhìn thấy con trỏ.

Điều gì có thể là vấn đề.

Browser là FF, trên IE và chrome nó đang làm việc một cách chính xác

Trả lời

29

bạn cũng có thể làm điều đó như thế này:

<input type="text" name="usrname" maxlength="10" /> 

để đạt được điều này với jQuery, bạn có thể làm điều này:

function limitText(field, maxChar){ 
    $(field).attr('maxlength',maxChar); 
} 
+0

Đây là đơn giản nhưng rất hiệu quả. Cảm ơn bạn – sisko

5

Mã của bạn đang hoạt động trong FF. phiên bản ở đây là chút thay đổi mã của bạn:

$('input.testinput').on('keyup', function() { 
    limitText(this, 10) 
}); 

function limitText(field, maxChar){ 
    var ref = $(field), 
     val = ref.val(); 
    if (val.length >= maxChar){ 
     ref.val(function() { 
      console.log(val.substr(0, maxChar)) 
      return val.substr(0, maxChar);  
     }); 
    } 
} 

Demo

Các vấn đề liên quan