Ir para conteúdo
Fórum Script Brasil
  • 0

Maxlength


Guest - eduardo -

Pergunta

Guest - eduardo -

ae galera eu tava precisando de um codigo que faça o seguinte..

logica..

cont=100

var = 100 - caixa_de_texto.length

se var = 0 então

bloqueia pro usuário não digitar mais

end-se

isso no onkeyup ou no onchange de uma textarea, pra fazer a funçao de um "maxlength", alguém me ajuda ae em javascript?

valeu então, flws

Link para o comentário
Compartilhar em outros sites

24 respostass a esta questão

Posts Recomendados

  • 0

A gente ajuda à vontade mano... Mas só tem um negócio, a gente não tá aqui pra fornecer script, e pra ajudar... você já tentou algum código ?! Se tentou terei prazer em ajudá-lo a aprimorar/consertar... Senão ... Acho que você tinha que tentar smile.gif

Abraços, e desculpe se fui rude ou algo...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - eduardo -

claro q eu tentei...

<script language="javascript">

<!--

function mostra_len()

{

document.envia_dados.caracteres.value=1500-document.envia_dados.msg.value.length;

}

{

if (document.envia_dados.msg.length = 1500)

{

document.envia_dados.msg.value = document.envia_dados.msg.value.substring(0, 1500);

}

}

//-->

</script></font>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - eduardo -

<script language="javascript">

<!--

function mostra_len()

{

document.envia_dados.caracteres.value=1000-document.envia_dados.msg.value.length;

}

{

if (document.envia_dados.msg.length == 1000)

{

document.envia_dados.msg.value = document.envia_dados.msg.value.substring(0, 1000);

}

}

//-->

</script>

não funcionou

ta passando de 1000 o length e não ta travando pro cara não digitar mais ;(

Link para o comentário
Compartilhar em outros sites

  • 0

cara não sei se é isso maz...

tenta ae...


<script language="javascript">

function aruma()
  {

   if (document.form1.campo.value.length>=100)
     {
       window.alert("você não pode digitar mais q 100 Caracteres!");               
       document.form1.campo.disabled=true;
     }

  }

</script>



<html>

<form name="form1">

<textarea name="campo" onKeydown="aruma();" rows="20" cols="100" maxlength="100"> </textarea>

</form>

</html>

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - eduardo -

não é isso não

não seria interessante desabilitar, pois o usuario poderia fazer alteração depois, e sim parar no valor "determinado", fazendo com que ele não consiga digitar nenhum caracter além..

Um Exemplo?

o sms da OI www.oi.com.br , tem o contador embaixo, quando chega a 0 o cara não consegue mais digitar, sem desabilitar a textarea...

Valeu ae, flwssss

Link para o comentário
Compartilhar em outros sites

  • 0

Olha cara, aqui vai pra vc, eu acabei de fazer, deve ter algum bug smile.gif

<html>
<head>
<script language="JavaScript">
<!--
//by john doe
var create1;
var noForm=false;
function caracteres(inp1,inp2,max){
var mInp1 = (document.layers)?"document.layers[inp1]":"document.all[inp1]";
var mInp2 = (document.layers)?"document.layers[inp2]":"document.all[inp2]";
if(document.all){
eval(mInp1+".maxLength=max");
}
mInp1len = eval("(max-1)-parseInt("+mInp1+".value.length)");
if(mInp1len>=0){
eval(mInp2+".value='"+mInp1len+"'");
}
else{
if(document.layers){
eval(mInp1+".value="+mInp1+".value.substring(0,max)");
}
}
}
-->
</script>
</head>
<body>
<input type="text" onkeydown="caracteres('jInp1','jInp2',10)" name="jInp1"><br />
<input type="text" onfocus="this.blur()" name="jInp2" size="1">
</body>
</html>

Ali onde tem a função caracteres, usa assim:

caracteres('nome_do_input_principal','nome_do_input_dos_caracteres',

maximo_de_caracteres_sem_aspas);

Sacou ?!?!

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

bom, eu pensei que era akilo! mas da nada o Moderador já resolveu o teu problema! fallou...

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - pasp -

não entendi nada cara...

sou iniciante..

me desculpe, mas teria como você me dar uma clareada? dar uma comentada nas linhas?

Bom desde já agradeço a tua compreensão, mas prefiro aprender do q pegar teu codigo e não entender nada ;(

valeu, Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

<html>
<head>
<script language="JavaScript">
<!--
//by john doe
var create1;
var noForm=false;
function caracteres(inp1,inp2,max){
/* Abaixo verifica a compatibilidade */
var mInp1 = (document.layers)?"document.layers[inp1]":"document.all[inp1]";
var mInp2 = (document.layers)?"document.layers[inp2]":"document.all[inp2]";
if(document.all){
	/* Se o navegador for IE4+ e o tipo de input for Text , ele define o maxLength para o máximo  

definido acima, no argumento da função :)*/
	if(eval(mInp1+".type=='text'")){
	eval(mInp1+".maxLength=max");
	}
}
/* Aqui ele subtrai o máximo de caracteres do número de caracteres digitados */
mInp1len = eval("(max-1)-parseInt("+mInp1+".value.length)");
/* se o número acima for maior ou igual a zero, vai colocar o número no input 2 , onde ficam os 

caracteres que faltam */
if(mInp1len>=0){
	eval(mInp2+".value='"+mInp1len+"'");
	return true;
}
/* se não, vai bloquear o textarea */
else
{
	if(document.layers){
	eval(mInp1+".value="+mInp1+".value.substring(0,max)");
	}
	if(document.all && eval(mInp1+".tagName=='TEXTAREA'")){
	event.returnValue = false;
	}
}
}
-->
</script>
</head>
<body>
<textarea onkeydown="return caracteres('jInp1','jInp2',10)" name="jInp1"></textarea>
<br />
<input type="text" onfocus="this.blur()" name="jInp2" size="1">
</body>
</html>

Agora sim tá completo smile.gif

E...o script só está um pouco confuso por causa do eval(), mas tá bem facil de entender smile.gif

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Legal, cara!

Muito obrigado, mesmo... mas, sem querer ser chato, olha o que eu notei: se você digita 10 caracteres e tenta apagar com as teclas <DELETE> ou <BACKSPACE>, ele não aceita... sad.gif

Vou estudar esse script e tentar mudar isso... obrigado, mais uma vez!

Abraços!

Link para o comentário
Compartilhar em outros sites

  • 0
Guest - eduardo -

john,

mas quando chega no limite (= 0;) ele trava o teclado não deixa deletar os caracteres nem nada.. o interessante seria só barrar quando chegar ao 0 e não travar o teclado

Um Abraço Obrigado

Link para o comentário
Compartilhar em outros sites

  • 0

Tenta assim:

no BODY

ONKEYDOWN="para()"

no HTML

<TEXTAREA NAME=mns></TEXTAREA>

<TEXTAREA NAME=hiddenv STYLE="visibility:hidden"></TEXTAREA>

no JS

maximo = 150

function para()

{

if(mns.value.length >= maximo)

{

hiddenv.focus()

}

}

Ou seja, ao Digitar o Maximo Possivel o cursor irá a caixa invisivel, no caso será um bloqueador, hehehe

Link para o comentário
Compartilhar em outros sites

  • 0

biggrin.gif Caros Amigos !

Este código resolve o problema !

Ele limita a digitação na TextArea e não bloqueia as teclas DELETE E BACKSPACE.

Para alterar o limite de caracteres digitados basta editas as duas ultimas linhas, onde estão os numeros 125.

<script LANGUAGE="JavaScript">

function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit) 
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else 
countfield.value = maxlimit - field.value.length;
}
</script>

<center>
<form name=myform action="#">
<font size="1" face="arial, helvetica, sans-serif"> ( Você deve entrar algum comentário de no máximo 125 caracteres. )<br>
<textarea name=message wrap=physical cols=28 rows=4 

onKeyDown="textCounter(this.form.message,this.form.remLen,125);" 

onKeyUp="textCounter(this.form.message,this.form.remLen,125);">

Espero ter ajudado !!

Um Abraço a todos

Link para o comentário
Compartilhar em outros sites

  • 0

tavinho... ta dandu pau esse teu script.

Link para o comentário
Compartilhar em outros sites

  • 0

unsure.gif Que estranho !

Aqui ta funcionando direitinho !

Mas beleza, ta aqui ele de novo tenta agora ...

Limitar uma text área

<script LANGUAGE="JavaScript">
<!-- Begin
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else 
countfield.value = maxlimit - field.value.length;
}
// End -->
</script>

<center>
<form name=myform action="#">
<font size="1" face="arial, helvetica, sans-serif"> ( Você deve entrar algum comentário de no máximo 125 caracteres. )<br>
<textarea name=message wrap=physical cols=28 rows=4 onKeyDown="textCounter(this.form.message,this.form.remLen,125);" onKeyUp="textCounter(this.form.message,this.form.remLen,125);">

Um abraço e qualquer coisa posta aeee...

Falowww

Link para o comentário
Compartilhar em outros sites

  • 0

tah dando erro na linha 7 "countfield"

cara tinha que mudar algo no fonte? eu so colei num txt e salvei como .html!

Fallou.... smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

biggrin.gif Não sei o que pode estar havendo !

Tenho uma pasta aqui com muitos Scripts, e apenas peguei o fonte da mesma maneira, que esta na página...

Ah e fiz o mesmo processo que vc, copiei e colei o codigo do forum e salvei como .html e funcionou direitinho...

Não sei o que pode estar havendo não ...

Mas se você descobrir, posta aee o motivo, porque aqui ta perfeito ...

Alias, alguém mais testou o código ? se testou ta funcionado ou dando erro ?

Um abraço

Falowwww

Ps: ( Dmetallica - Se você quiser te mando a página por e-mail...)

Link para o comentário
Compartilhar em outros sites

  • 0

manda então...

vamos ver ...qual era!

Link para o comentário
Compartilhar em outros sites

  • 0

biggrin.gif Caraca !!

Acabei de notar a mancada que eu dei .. heheh

Tinha mesmo um erro no código, mas já corrigi o danado...

Desta vez não tem erro ...

<script language="JavaScript">
<!-- Begin
function textCounter(field, countfield, maxlimit) {
if (field.value.length > maxlimit) // if too long...trim it!
field.value = field.value.substring(0, maxlimit);
// otherwise, update 'characters left' counter
else 
countfieldvalue = maxlimit - field.value.length;
}
// End -->
</script>

<center>
<form name=myform action="#">
<font size="1" face="arial, helvetica, sans-serif"> ( Você deve entrar algum comentário de no máximo 125 caracteres. )<br>
<textarea name=message wrap=physical cols=28 rows=4 onKeyDown="textCounter(this.form.message,this.form.remLen,125);" onKeyUp="textCounter(this.form.message,this.form.remLen,125);">

Só para esclarecer na linha 10, o erro que ele acusava era por causa de um simples ponto blink.gif

Veja a linha errada

countfield.value = maxlimit - field.value.length;

Veja a linha correta

countfieldvalue = maxlimit - field.value.length;

Agora sim ...

Foi mal pessoal...

Um abraço a todos

Falowwwww rolleyes.gif

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,1k
×
×
  • Criar Novo...