Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

pedrovisk

Limite de Caractéres Máximo

Recommended Posts

Turma,

 

Eu utilizo o código abaixo para colocar os caractéres de um textbox em Maiusculo, até aí tudo bem, mas o campo deveria ter um limite de TRÊS caractéres e quando utilizo esta função, ele deixa livre para digitar. Como faço para estabelecer o limite na própria função?

 

function Maiusculo(input,e){

	if(window.event){
		var tecla = event.keyCode;
	}else{
		var tecla = e.which;
	}
	if(tecla != 8){
		var valor = String.fromCharCode(tecla);
		if(valor.match("[A-Za-z]")){
			input.value += valor.toUpperCase();
			return false;
		}
	}
	return true;
}

No campo fica assim

 

<input name="Origem1" type="text" class="Caixa" style="width: 200px;" onkeydown="return Maiusculo(this,event)" value="" maxlength="3"/>

Grato a quem puder ajudar,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu tentaria usar um contador aqui:

var cont;
if(cont<=3){
	   if(valor.match("[A-Za-z]")){
			input.value += valor.toUpperCase();
			cont++;
			return false;
		}
}
Acho que deu pra entender né?

achei estranho nao dar ceto mesmo com o maxlength

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa Tarde pedrovisk!

 

Então kara, faz assim o..

 

function max_texto(campo,MaxLength){

if (campo.value.length > MaxLength){return false;}

else {return true;}

}

 

 

Esta função limita o campo que você quizer com aquantidade de caracteres que você desejar ( basta substituir campo pelo campo especifico, e MaxLenght pelo tamanho desejado..

Dai no caso você chamaria assim

 

Exemplo:

 

<textarea name="mesg" rows="7" cols="29" alt="Mensagem" onKeyPress="return max_texto(this,300)" >textarea>

 

Observação: a palavra "this" dentro da função max_texto, explicando a grosso modo, serve para referenciar o próprio objeto em questão. No exemplo acima referencia o

<textarea> ;)

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fernando,

 

Excelente seu código, funcionou lega!

 

Mas o contador do iRCC ficou muito mais fácil de implementar.

 

Agora depois da implementação do código abaixo, não está mais em UPCASE quando digito.

 

function Maiusculo(input,e){

	if(window.event){
		var tecla = event.keyCode;
	}else{
		var tecla = e.which;
	}
var cont;
if(cont<=3){
	   if(valor.match("[A-Za-z]")){
			input.value += valor.toUpperCase();
			cont++;
			return false;
		}
}
	return true;
}

 

O que houve?

 

Muito obrigado pela ajuda,

 

Pedro

Compartilhar este post


Link para o post
Compartilhar em outros sites

Será que é pq esta faltando esta linha?

var valor = String.fromCharCode(tecla);

desculpe se falei besteira, mas não analisei o codigo novamente, só notei essa diferença, mas vou te dar uma dica de implementação:

function Maiusculo(input,e){
   var tecla 
  tecla = event.keyCode ||e.which;
isso vai substitui seu if e deixa uma implementação mais limpa.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então..

 

Uma idéia mais simples, se você quer deixar o conteúdo do campo em maiúsculo, seria usar CSS, aplicando a propriedade:

 

text-transform: uppercase;

 

Exemplo:

 

Vamos supor que tudo que eu digitar no campo textarea, tenha que aparecer em maiúsculo.

Ficaria mais ou menos assim:

 

<textarea name="mesg" rows="7" cols="29" alt="Mensagem" style="text-transform: uppercase;">textarea>

 

 

Note o CSS na linha do campo textarea "style="text-transform: uppercase;" , este comando, converte todos os caracteres que forem digitados, automaticamente

para maiúsculo, sendo que você não precisa, passar caracter por caracter para verificar! ;)

 

Você pode aplicar esta regra a qualquer coisa que tenha um texto dentro (campos do formulário, divs, etc..)

 

Espero que isso ajude você...

 

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agora ficou assim:

 

function Maiusculo(input,e){
	var tecla 
	  tecla = event.keyCode ||e.which;
	if(window.event){
		var tecla = event.keyCode;
	}else{
		var tecla = e.which;
	}
	if(tecla != 8){
		var valor = String.fromCharCode(tecla);
		if(valor.match("[A-Za-z]")){
			input.value += valor.toUpperCase();
			return false;
		}
	}
	return true;
}

E continua não ficando em Maiusculo.

 

Com CSS não vai para o BD em Maiusculo, por isso que não vou utilizar.

 

Obrigado,

 

Pedro.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faça o seguinte

var valor = String.fromCharCode(tecla - 32);

Se você souber os elementos da tabela ASCII saberá pq fiz isso, se nao souber de uma olha nela qie você vai enter.

com isso sua linha

input.value += valor.toUpperCase();
pode ser retirada.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.