J'ai une zone de texte sur laquelle je veux bloquer l'entrée si les caractères saisis atteignent une longueur maximale.Comment bloquer d'autres entrées dans la zone de texte en utilisant maxlength
J'ai actuellement un script Jquery pour la zone de texte qui calcule les caractères entrés et que vous voulez ajouter quelque chose qui va bloquer l'entrée dans la zone de texte une fois que 150 caractères sont entrés.
J'ai essayé d'utiliser des plugins max-length en conjonction avec mon script, mais ils ne semblent pas fonctionner. L'aide est appréciée.
CODE COURANT
(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);
Travaux sur les entrées, mais pas textareas malheureusement – user342391
maxlength est pas un attribut textarea valide. –
Ouais, pour une raison quelconque, Chrome l'applique, c'est ce que j'ai testé. Eh bien, une autre méthode mise à jour. – Robert