Ir para conteúdo

POWERED BY:

Arquivado

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

Zébástian

Alterar value no onfocus

Recommended Posts

Galera..

Como eu posso estar fazendo c/ q mude o value do input no onfocus de acordo c/ a validação. Por exemplo:

 

function mudavalue(nomes,valores){

nome=nomes.split(',')

vlr=valores.split(',')

for(x=0; x<nome.length; x++){

document.getElementById(nome[x]).onfocus=function(){if(this.value==vlr[x])this.v

alue=''}

}

}

 

mudavalue('nome,senha,cnfsenha','Insira seu nome,Insira sua senha,Confirme sua senha')

 

Aqui o vlr[x] retorna undefined

Compartilhar este post


Link para o post
Compartilhar em outros sites

Respondendo a dúvida p/ todos.. (a resposta consegui em 1 tópico no orkut)

Ah sim.Esse caso é relativamente comum.Um palavra resume o seu problema: assincronidade.no momento em que o evento *focus* de qualquer um desse elementos seus for ativado a função irá fazer referencia do vlr[x]...e naquele momento qual é o valor de x? Simples! O valor de x será o mesmo do nome.length. Pois quando o evento for executado o loop já terá sido executado a muito tempo. E isso quer dizer que o x atingiu o valor ao qual é comparado: nome.length.Sacou a questão?Solução:Você atribuir a cada elemento (input) em questão uma propriedade singletone, tipo isso aqui:

...for(x=0; x<nome.length; x++){var o = document.getElementById(nome[x]);o.x = x;o.onfocus=function(){if(this.value==vlr[this.x])this.value=''};}...
É meio tosco mas é a solução mais prática e simples.Testa aí me fala se deu certo.

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.