Aeeee, quanto tempo né, rsrs. Faz parte, talvez este seja o último post deste ano, (caso seja, um feliz ano novo e feliz natal a todos).
A um tempo atrás eu fiz um post sobre como limitar o tamanho de inputs com jquery. Hoje eu irei mostrar como limitar o tamanho de textareas com um simples código jquery.
Sabemos que inputs do tipo text tem a propriedade maxlength e também sabemos que textareas não tem, mas com um código jquery podemos trabalhar como se existisse maxlength em textareas.
Para fazermos isso é simples.
Precisamos de um textarea com maxlength.
<textarea maxlength="15" rows="5" cols="30" name="texto"></textarea>
Após devemos adicionar no seu javascript o seguinte código:
$("textarea[maxlength]").keypress(function(event){
var key = event.which;
//todas as teclas incluindo enter
if(key >= 33 || key == 13) {
var maxLength = $(this).attr("maxlength");
var length = this.value.length;
if(length >= maxLength) {
event.preventDefault();
}
}
});
Exemplo:
Por hoje é só rsr. Feliz Natal a todos.
Versão do colega Franklin Javier: http://code.imasters.com.br/index.php?/topic/230-maxlength-em-textarea/
Versão do colega Gilton Guma: http://jsfiddle.net/gsguma/rYgXP/
Fala amigão, boa função, mas falta ainda alguns ajustes. Se der espaço aceita, se copiar e colar mais que o limite aceita também.
Fiz alguns ajustes, da uma olhada:
/** * textarea_maxlength() * @abstract Essa função atribui um limite de caracteres para o elemento tanto na digitacao quanto * quando se tenta copiar/colar. Muitas funcoes disponiveis na internet, nao preve o * bloqueio do copiar/colar. * * @params idEl: ID do elemento / max: Quantidade maxima de caracteres. * @date 01 Abr 2010 (nao e mentira rs) * @autor Franklin Javier **/ function textarea_maxlength(idEl, max){ var campo = jQuery('#'+ idEl); campo.keypress(function(event){ var key; var ie = (typeof window.ActiveXObject != 'undefined'); (ie) ? key = event.keyCode : key = event.which; // Se for IE (keyCode), caso contrario, (wich) if(key >= 33 || key == 13 || key == 32) { // Se ja estiver no limite de caracteres return null (preventDefault) var tam = this.value.length; (tam >= max) ? event.preventDefault() : null; } window.status = campo.val().length; }); // Substring no evento keyup campo.bind('keyup', function(event){ var tam = this.value.length; if(tam > max){ campo.val(campo.val().substring(0, max)); //setcursor(idEl,1000000,1000000); } }); }Abraços
Cara vlw mesmo, vou acabar criando um plugin pra isso, mas por enquanto o blog está parado (muitos outros compromissos como TCC / Concurso). Abraço
Maravilha… ficara show!
Abcs man!
Cara eu não consegui utilizar a sua função!
Eu ainda estou iniciando no jquery!
vc poderia me dar um exemplo da utilização dela?
Olá caro Marlucio, já que está começando com jQuery agora, vale dar uma lida na documentação do jQuery.
Um exemplo está nesta página, caso tenha alguma dificuldade em entender, basta dar uma olhada no código fonte desta página.
Atenciosamente
Eis o plugin brother:
Link do forum – http://code.imasters.com.br/index.php?/topic/230-maxlength-em-textarea/
Link de exemplo – http://dev.franklinjavier.com.br/plugins/maxlength/
Vlw, vale lembrar que seu site ta off.
Opa, so para atualizar, meu site agora eh sem o .br
abs
Daí galera, dei uma ajustada e ficou assim:
http://jsfiddle.net/gsguma/rYgXP/
Espero ter ajudado, abraço!
Opa, vlw, ficou bem legal como plugin =D. Add no post.
Fiz uma forma mais simples
$(document).ready(function() {
$(‘textarea’).keypress(function(e) {
if ($(this).attr(‘tamanho’) == null)
return;
if (parseInt($(this).val().length) > parseInt($(this).attr(‘tamanho’)))
return false;
});
});
Rafael, o seu nao ta bloqueando um texto arrastado pra dentro do textarea, bem como o copiar e colar. Faz um teste.