Tengo un área de texto en el que quiero bloquear la entrada si los caracteres ingresados alcanzan una longitud máxima.¿Cómo puedo bloquear entradas adicionales en textarea utilizando maxlength?
Actualmente tengo un script de Jquery para el cuadro de texto que calcula los caracteres ingresados y desea agregar algo que bloqueará la entrada en el área de texto una vez que se ingresen 150 caracteres.
He intentado utilizar complementos de longitud máxima junto con mi script, pero parece que no funcionan. La ayuda es apreciada.
CÓDIGO ACTUAL
(function($) {
$.fn.charCount = function(options){
// default configuration properties
var defaults = {
allowed: 150,
warning: 25,
css: 'counter',
counterElement: 'span',
cssWarning: 'warning',
cssExceeded: 'exceeded',
counterText: '',
container: undefined // New option, accepts a selector string
};
var options = $.extend(defaults, options);
function calculate(obj,$cont) {
// $cont is the container, now passed in instead.
var count = $(obj).val().length;
var available = options.allowed - count;
if(available <= options.warning && available >= 0){
$cont.addClass(options.cssWarning);
} else {
$cont.removeClass(options.cssWarning);
}
if(available < 0){
$cont.addClass(options.cssExceeded);
} else {
$cont.removeClass(options.cssExceeded);
}
$cont.html(options.counterText + available);
};
this.each(function() {
// $container is the passed selector, or create the default container
var $container = (options.container)
? $(options.container)
.text(options.counterText)
.addClass(options.css)
: $('<'+ options.counterElement +' class="' + options.css + '">'+ options.counterText +'</'+ options.counterElement +'>').insertAfter(this);
calculate(this,$container);
$(this).keyup(function(){calculate(this,$container)});
$(this).change(function(){calculate(this,$container)});
});
};
})(jQuery);
Obras en las entradas pero no por desgracia áreas de texto – user342391
maxlength no es un atributo de área de texto válido. –
Sí, por la razón que Chrome lo aplique, que es lo que probé. Oh, bueno, otro método actualizado. – Robert