2014-06-27 18 views
7

Ho ottenuto un campo di input semplice che ha un attributo maxlength = "2". Il codice è il seguente:l'attributo maxlength di input in html non funziona su HTC One M7

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

Funziona correttamente sulla maggior parte dei dispositivi Android. Tuttavia, su HTC One M7, non funziona. Su questo dispositivo, mi consente di inserire tutti i personaggi che voglio.

Qualche suggerimento? Penso che dovrebbe essere un problema specifico del dispositivo finora.

Grazie in anticipo.

risposta

2

Ho notato questo problema su un paio di progetti. Penso che alcune versioni di Android abbiano un cattivo supporto per maxlength.

La mia soluzione era utilizzare una funzione jdownload key che controlla la quantità di caratteri e impedisce di essere immessa se il massimo è stato raggiunto.

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

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

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

Sono sicuro che si potrebbe cambiare questo in modo che cercato per ogni ingresso con gli attributi di maxlength e ha creato una copia di backup jQuery al volo. Non sono sicuro che sarebbe piuttosto lento.

+0

Si lo so che jQuery può aiutare con questo problema. Tuttavia, ho affrontato un altro problema: ad esempio, inserisco un personaggio, diciamo "f", la predizione suggerirà alcune parole come amico, fuoco, film, ecc. Se seleziono una parola suggerita, il campo di testo permetterà più di 2 personaggi e da ora, sono ancora in grado di inserire un personaggio. –

+0

Puoi dare l'input o formare l'attributo autocompletamento = "off" poiché si tratta di un browser mobile e probabilmente eseguendo html5 –

+0

l'ho già provato ma nessuno del completamento automatico o autocapitalize ecc. Funziona con la predizione di Android. –

6

provare questo:

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

così facile e così utile! In Android tutti gli altri suggerimenti con 'return false' su value> maxlength non funzionano, questo funziona perfettamente! Grazie! –

+0

Lo stesso qui. L'altra risposta non ha funzionato su Android Cordova (anche se le parole nel browser desktop Chrome). Ma questo funziona bene anche con completamento automatico, correzione automatica abilitata. – Hawk

+0

Questo non funziona sul mio progetto Android Cordova, c'è qualche soluzione? – Sumit