2012-09-13 14 views
13

Quiero limitar el número de caracteres en el campo de texto de entrada.Texto de límite de Jquery en el cuadro de entrada

Código

que estoy usando:

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

Evento es onkeyup. Cuando escribo texto en el campo de entrada, el cursor se queda al final del texto, pero el foco se respalda al inicio del texto para que no pueda ver el cursor.

¿Qué puede ser un problema.

Browser es FF, en IE y Chrome que funciona correctamente

Respuesta

29

también puede hacerlo de esta manera:

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

para lograr esto con jQuery, usted puede hacer esto:

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

Este era simple, pero muy eficaz. Gracias – sisko

5

Su código está trabajando en FF. Aquí está la versión ligeramente modificada de su código:

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

Cuestiones relacionadas