2012-09-13 12 views
13

Voglio limitare il numero di caratteri nel campo di testo di input.Jquery limit text in input box

codice che sto usando:

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

evento è onKeyUp. Quando digito del testo nel campo di inserimento il cursore rimane alla fine del testo, ma la messa a fuoco è supportata all'inizio del testo, quindi non posso vedere il cursore.

Che cosa può essere un problema.

Browser è FF, su IE e Chrome sta funzionando correttamente

risposta

29

si può anche fare in questo modo:

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

per raggiungere questo obiettivo con jQuery, si può fare questo:

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

Questo è stato semplice ma molto efficace. Grazie – sisko

5

Il tuo codice funziona in FF. Qui la versione è leggermente modificata del codice:

$('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