Exibir no momento da digitação quando caracteres já foram digitados ** RESOLVIDO

Tenho um campo texto e preciso exibir no momento da digitação quantos caracteres já foram digitados.

Tem como fazer no SC?

Obrigado

com jquery acredito que sim.

Código Javascript para buscar

el = getElementById(‘id_do campo’);

var s = el.value;
var res = s.indexOf(“caracterqualquer”);

//Se res == -1 Não achou
if(res== -1){
cor = “#FFFFFF”;//Branco
}
else{
cor = “#FF0000”;//Vermelho
}

el.style = "background-color: "+cor;

mas o sc não tem evento para rodar este código.

Acredito que utilizando javascript/campo/onChange de pra implementar.

Será que não Haroldo?

não sei, só testando, nunca usei esse evento, mas para mim, ele só é executado quando o campo perde o foco e tem alteração, não?

Talvez vc esteja se confundindo com onBlur. Este sim só é disparado na perda de foco.

Realizei alguns testes aqui o unico navegador que pode ter esse tipo de comportamento é o IE, pra variar.

Acho que se a função for implementada como método javascript dá certo, quanto ao evento, isso não é impedimento é só implementar o evento juntamente com o método. Não conheço quase nada de javascript, então se falei muita besteira me corrijam por favor!!!

Obrigado aos colegas pelo empenho em tentar resolver o meu problema, ainda não consegui por para funcionar.

estou criando um código aqui, que achoque pode funcionar, posto assim que terminar.

onBlur sim na perca do foco independente do campo ter sido alterado ou não.
onChange somente quando o campo sofreu alteração.

Falha minha mesmo, talvez fosse o tipo de campo que estava testando que apresentou esse resultado, em campos texto o melhor a fazer é implementar no onkeyup.

No SC n vi esse evento então talvez uma forma de implementar seja:

function inicia(){
el = getElementById(‘id_do campo’);

el.onkeyup=function(){
var s = this.value;
var res = s.indexOf(“caracterqualquer”);

  //Se res == -1 Não achou
  if(res== -1){
       cor = "#FFFFFF";//Branco
  }
  else{
       cor = "#FF0000";//Vermelho
  }

  this.style = "background-color: "+cor;

}
}

isso, no onKeyUp é o local correto, e não tem esse evento no sc, mas precisamos testar na pratica se esse código não vai afetar o funcionamento do campo para o Sc (tipo mascara deve usar esse evento internamente).

acho que consegui, vejam:

http://iw.servehttp.com:85/sc/iw/app/Publico/iw_exemplos_onkeyup

Passos:

  • Criei uma app de controle com um campo de nome “MeuCampo”

  • No help do campo, modo texto coloquei o código:

<br>Quantidade de Carateres: <span id=meucampo_chars></span>
  • No evento onload coloquei o código:
echo <<<js

<script type="text/javascript">

jQuery.fn.contar = function(display, callback){
    return this.each(function(){
		conta = function (x){
			var contador = $(this).val().length;
			if(display) $(display).text(contador);
		}
		$(this).keyup(conta).keydown(conta).keyup(function(){callback.call(this)});
    });
};

$(document).ready(function(){
	$("#id_sc_field_meucampo").contar("#meucampo_chars");
})

</script>

TAGS: HAROLDO, KEYPRESS, CONTAR, CARACTERES
1 Curtida

Bom agora sim… =)

Haroldo,

Testei e está funcionando, fico lhe devendo mais uma (a lista de débitos está grande).

Obrigado a todos.

Assim que eu fizer uma visita a Recife, você diminui essa lista.

Risos,

Estou esperando, não demore.

Haroldo,

Aproveitamos e vamos até a terra do fumo de rolo visitar o Jovito.