funÇÃo de javascript para bloquear caracteres

11 respostas
O

Pessoal,

Eu tenho um textArea e ele não aceita o comando maxlength.

Então eu preciso BLOQUEAR a digitação do usuario quando ele inserir 100 caracteres.
Pq ele não esta bloqueando e daí estoura o limite no banco e dá pau.

Alguem me ajuda nessa função de JS para bloquear quando os caracteres chegarem a 100???

valeuz :wink:

11 Respostas

D

< input type=“text” maxlength=“100” >

O

Cara, o maxlength naum funciona para o TEXTAREA.

:cry:

O

Isso serve?

[]s

R

ou isso:

function contaCaract&#40;&#41;
	&#123;
		var cont = document.seuForm.&lt;textArea&gt;.value;
		var permitido = 2000;
	
		if&#40;cont.length &gt; permitido&#41;
		&#123;
			event.keyCode = null;
			return false;
		&#125; 
		else
		&#123;
		    return true;	
		&#125;
	&#125;
T

Como é que você insere dados direto no banco, sem fazer nenhuma validação? Que coisa…

Se você está fazendo isso, e se você está usando “UPDATE” ou “INSERT” sem ser via PreparedStatement - ou seja, concatenando strings e montando o comando SQL no braço , posso até entrar com o seguinte comando SQL na text area (obviamente aqui estou supondo que seu banco usa ‘;’ para separar comandos SQL):

e ele iria fritar alguma tabela importante sua… Entre com o seu comando preferido (tipo TRUNCATE TABLE ou outras coisas mais “light”.)

_

SERÁ QUE TEM UMA FUNÇÃO NO FÓRUM PARA COLOCAR EM CAIXA BAIXA QUEM É ABUSADO E PÕE TUDO EM CAIXA ALTA?

hum, aparentemente não … que tal o bom senso? :smiley:

O

Valeu Baioni e OM.

Thiago…na realidade eu escrevi errado…naum dá pau de banco e sim de JS.

Lip, vc esta se referindo a mim?

Valeu Galera pela força.

bye
:wink: :wink:

J
<td align="left" class="txtPagina">Observação<br />

	<textarea onkeypress="javascript: return limitaCaracteres('obs',295)" id="obs" class="formulario"     rows="3"    cols="35" style="width:315px;" name="planoDeContas.obs">${planoDeContas.obs}</textarea>

</td>





/**
 * Limita aquantidade de caracteres de um elemento, o qual seu ID é recebido no parámetro
 * @param {Object} id - é o ID do elemento que está sendo usado
 * @param {Object} numCaracteres - número de caracteres máximo permitido
 */
function limitaCaracteres(id, numCaracteres){
	valor = document.getElementById(id).value;
	if(valor.length>=numCaracteres){
		//alert("mais que "+numCaracteres);
		return false;			
	}else{
		return true;
	}
}

:lol:

J

Uma pequena correçao.

<textarea onkeypress="javascript: return limitaCaracteres('obs',295, event)" id="obs" class="formulario" rows="3" cols="35" style="width:315px;" name="planoDeContas.obs">${planoDeContas.obs}</textarea>


/**
 * Limita aquantidade de caracteres de um elemento, o qual seu ID é recebido no parámetro
 * @param {Object} id - é o ID do elemento que está sendo usado
 * @param {Object} numCaracteres - número de caracteres máximo permitido
 */
function limitaCaracteres(id, numCaracteres, e){
	valor = document.getElementById(id).value;
	if(valor.length>=numCaracteres){
		//alert("mais que "+numCaracteres);
		var whichCode = (window.Event) ? e.which : e.keyCode;    	
		if(whichCode == 8 || whichCode == 0)return true; // aceita Tab e Back Space
		return false;			
	}else{
		return true;
	}
}
R
joaoorso:
Uma pequena correçao.
<textarea onkeypress="javascript: return limitaCaracteres('obs',295, event)" id="obs" class="formulario" rows="3" cols="35" style="width:315px;" name="planoDeContas.obs">${planoDeContas.obs}</textarea>


/**
 * Limita aquantidade de caracteres de um elemento, o qual seu ID é recebido no parámetro
 * @param {Object} id - é o ID do elemento que está sendo usado
 * @param {Object} numCaracteres - número de caracteres máximo permitido
 */
function limitaCaracteres(id, numCaracteres, e){
	valor = document.getElementById(id).value;
	if(valor.length>=numCaracteres){
		//alert("mais que "+numCaracteres);
		var whichCode = (window.Event) ? e.which : e.keyCode;    	
		if(whichCode == 8 || whichCode == 0)return true; // aceita Tab e Back Space
		return false;			
	}else{
		return true;
	}
}

nao sei se eu deveria ressucitar o topico,mas irei.
bem, esse codigo funciona se a pessoa for digitando digito por digito, mas se por algum acaso ele digita o texto fora da area e cola um texto maior, o codigo vai furar.
para o codigo funcionar corretamente seria necessario conseguir o texto que a pessoa esta tentando inserir. verificando se o document.getElementById(id).value + 'novo texto' eh maior que o permitido

como faco para pegar o texto que esta sendo inserido no evento.
Tipo eu sei como pegar o caractere que ele digitou, mas isso nao vai adiantar muito, se o cara apertar CRTL + V eu pegar o 'V' preciso pegar o texto que ele esta colando. Alguem sabe como fazer isso????

C
<script language="javascript"> 
//Contador de palavras no Campo
function AreaMax(campo, max, maxtxt)
{
	var len = campo.value.length;
	if(len>max){
		campo.value = campo.value.substring(0, max);
	}	
	
	maxtxt.value=max-campo.value.length;
}
</script> 
<style> 
.textarea { 
   		   BACKGROUND-COLOR: #FFFFFF;
		   BORDER-BOTTOM: 1px; 
		   BORDER-BOTTOM-WIDTH: 1px;
   		   BORDER-LEFT: 1px; 
		   BORDER-LEFT-WIDTH: 1px;
		   BORDER-RIGHT: 1px; 
		   BORDER-RIGHT-WIDTH: 1px;
		   BORDER-TOP: 1px; 
   		   BORDER-TOP-WIDTH: 1px; 
  		   COLOR: #000000; 
		   border: 1px solid #98ACB9;
		   FONT-SIZE: 9px; 
		   FONT-FAMILY: Verdana; 
   		   OVERFLOW: auto; 
		   }
input {background-color: #FFFFFF;	font-family: Verdana, Arial, Helvetica, sans-serif;	font-size: 9px;	border: 1px solid #98ACB9;}
</style> 
 
<table cellpadding="0" width="100%" align="center" cellspacing="0" border="0"> 
 
	<tr> 
		<td width="208"><strong>Descri&ccedil;&atilde;o:</strong></td> 
	</tr> 
	<td width="202"> 
		<textarea name="descricao" class="textarea" cols="56" rows="5" onKeyUp="AreaMax(this, 250, MaxConceito);"></textarea> 
	</td> 
  <tr> 
    <td> 
      <input name="MaxConceito" type="text" class="input" id="MaxConceito" style="text-align:center;" size="3" maxlength="3" disabled> 
    </td> 
  </tr> 
</table>

fonte: http://imasters.uol.com.br/artigo/3730/javascript/verificacao_e_notificacao_de_informacoes/

Acho que resolve!

Criado 30 de setembro de 2004
Ultima resposta 21 de mai. de 2010
Respostas 11
Participantes 9