Ir para conteúdo

POWERED BY:

Arquivado

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

neoHaT

[Resolvido] Problema com id de um campo...

Recommended Posts

Olá a todos,

criei uma função para contar os caracteres de um determinado input.

Visando a automatização dessa função, eu queria não tratar ID nem NAMES no javascript, e sim atribuir isso pelo ID do input no HTML.

 

Olhem:

function contador(campo){

	var teste = "teste"
	var amostrar = document.getElementById(teste+"_contador");
	if(amostrar){ amostrar.innerHTML = campo.value.length; }

}
Com um HTML mais ou menos assim:

<textarea name="teste" id="teste" rows="4" onkeypress="contador(this);" onkeyup="contador(this);" onkeydown="contador(this);"></textarea>
<span id="teste_contador">0</span>
A duvida é a seguinte...

Eu queria dizer que a variável 'amostrar' e o ID do textarea + '_contador'...

Tentei por:

document.getElementById(campo+"_contador")
E não funcionou... Alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ao que me parece o que tá errado é que você tá passando o objeto com parâmetro para função e lá dentro você tá esperando uma string com o id do elemento.

Talvez assim funcione:

<textarea name="teste" id="teste" rows="4" onkeypress="contador(this.id);" onkeyup="contador(this.id);" onkeydown="contador(this.id);"></textarea>
<span id="teste_contador">0</span>
Mas mesmo assim, acho que você vai contar 3 caracteres para cada caracter digitado por conta dos eventos mapeados. Se isso acontecer mesmo, tente usar só "onkyepress".

 

function contador(campo){
	var amostrar = document.getElementById(campo+"_contador");
	if(amostrar){ amostrar.innerHTML = campo.value.length; }

}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vou testar isso... Mas acredito em algum 'porém'...

De qualquer forma obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Só precisei fazer uma alteração pequena, e puff virou mágica agora...

 

java script:

//Contador
	function contador(campo){

		var amostrar = document.getElementById(campo+"_contador");
		if(amostrar){ amostrar.innerHTML = document.getElementById(campo).value.length; }

	}
HTML:

<input name="nome" id="nome" type="text" onkeypress="contador(this.id);" onkeyup="contador(this.id);" onkeydown="contador(this.id);" />
Digitados: <span id="nome_contador">0</span>

<input name="idade" id="idade" type="text" onkeypress="contador(this.id);" onkeyup="contador(this.id);" onkeydown="contador(this.id);" />
Digitados: <span id="idade_contador">0</span>

<input name="email" id="email" type="text" onkeypress="contador(this.id);" onkeyup="contador(this.id);" onkeydown="contador(this.id);" />
Digitados: <span id="email_contador">0</span>

Ficou muito pratico, basta a pessoa criar recipiente com com id assim: (id do campo)_contador e tudo certo.

[Resolvido]

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.