2014-06-27 19 views
7

Tôi nhận được trường nhập đơn giản có thuộc tính maxlength = "2". Mã trông giống như sau:thuộc tính maxlength của đầu vào trong html không hoạt động trên HTC One M7

<input id="txtLoginName" maxlength="2"> 

Nó hoạt động tốt trên hầu hết các thiết bị Android. Tuy nhiên, trên HTC One M7, nó không hoạt động. Trên thiết bị này, nó chỉ cho phép tôi nhập bao nhiêu ký tự tùy thích.

Bất kỳ đề xuất nào? Tôi nghĩ rằng nó phải là một vấn đề cụ thể thiết bị cho đến nay.

Xin cảm ơn trước.

Trả lời

2

Tôi đã nhận thấy vấn đề này trên một vài dự án. Tôi nghĩ rằng một số phiên bản của Android có hỗ trợ xấu cho maxlength.

Giải pháp của tôi là sử dụng chức năng khóa phím của jQuery để kiểm tra số lượng ký tự và ngăn không cho nhập nữa nếu số lần truy cập tối đa đã được nhấn.

$('#inputWithMaxLength').keydown(function (e) { 

    var inputLength = jQuery(this).val().length; 

    if(inputLength >= 10) { 
     e.preventDefault(); 
     return false; 
    } 
} 

tôi chắc chắn rằng bạn có thể thay đổi điều này để nó tìm kiếm bất kỳ đầu vào với các thuộc tính của maxlength và tạo ra một bản sao lưu jQuery khi đang bay. Tôi không chắc liệu điều đó có khá chậm hay không.

+0

Ừ Tôi biết rằng jQuery có thể giúp đỡ với vấn đề này. Tuy nhiên, tôi phải đối mặt với một vấn đề khác: ví dụ, tôi nhập một ký tự, giả sử "f", dự đoán sẽ gợi ý một số từ như bạn bè, lửa, phim, v.v. Nếu tôi chọn từ được đề xuất, trường văn bản sẽ cho phép nhiều hơn 2 ký tự và từ bây giờ, tôi vẫn có thể nhập một số ký tự. –

+0

Bạn có thể cung cấp đầu vào hoặc biểu mẫu thuộc tính autocomplete = "off" vì đó là trình duyệt dành cho thiết bị di động và có thể chạy html5 –

+0

Tôi đã thử nó nhưng không có công cụ tự động hoàn thành hoặc tự động hóa nào hoạt động với dự đoán của Android. –

6

Hãy thử điều này một:

var $input = $('input') 
$input.keyup(function(e) { 
    var max = 5; 
    if ($input.val().length > max) { 
     $input.val($input.val().substr(0, max)); 
    } 
}); 
+1

dễ dàng và hữu ích! Trong Android tất cả các gợi ý khác với 'return false' về giá trị> maxlength không hoạt động, điều này hoạt động hoàn hảo! Cảm ơn! –

+0

Tương tự ở đây. Câu trả lời khác không hoạt động trên Android Cordova (mặc dù nó có từ trong trình duyệt Chrome dành cho máy tính để bàn). Nhưng điều này hoạt động tốt ngay cả với tự động hoàn tất, tự động sửa được bật. – Hawk

+0

Điều này không hoạt động trên dự án Android Cordova của tôi, có cách nào khác không? – Sumit

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