Dúvida Javscript

7 respostas
el_loko

Olá a todos!

Estou com um problema pra resolver em uma página de cadastro onde quando o usuário termina de preencher certos campos,
ele vai para o próximo sem precisar digitar o tab.

criei uma função em javascript onde o campo é o campo onde o usuário está entrando com os dados, o maxLenght é a quantidade de caracteres
que o campo permite, e o proximo item seria o campo para o qual eu quero jogar o focus() quando o usuário terminar de preencher o campo atual…

function mudarFocus(campo, maxLenght, proximoItem) {
        if(maxLenght == campo.toString().lenght) {
            proximoItem.focus();
        }
    }

isso foi oq consegui fazer. acho que da pra entender oq quero fazer com esse codigo, mas ele não funciona!
alguém tem alguma idéia pra ajudar…

grato!

7 Respostas

T

Amigo, tome cuidado com a sua ortografia. O comprimento de uma string é dado por length, não lenght.

O Javascript não é o Google e não corrige automaticamente a sua ortografia.

el_loko

thingol:
Amigo, tome cuidado com a sua ortografia. O comprimento de uma string é dado por length, não lenght.

O Javascript não é o Google e não corrige automaticamente a sua ortografia.

é isso é verdade!
eu acabei digitando o código aqui e errei na ortografia!
:smiley:

o fato é que essa propriedade length só retorna 0 (zero)…

P

Você está passando o campo ou o valor do campo?

Caso seja o campo você deve usar

campo.value.length

Posta o trecho da página onde você usa a função.

el_loko

O código agora está assim:

function mudarFocus(campo, maxLenght, proximoCampo) {
        if (maxLenght == campo.value.length) {
            proximoCampo.focus();
        }
    }

adicionei evento no “TextBox1”;

agora o problema está no métodos focus(). A mensagem de erro é:
O objeto não dá suporte para a propriedade ou método

tentei assim tbm, mas não deu certo!

S

Parece que você está passando uma string ao invés de passar um campo.
De qualquer forma, usa jquery e para de sofrer.

P

Se os campos estiverem dentro de um mesmo form e o nome do campo for TextBox2 faça assim:

onKeyDown="mudarFocus(this, 3, this.form.TextBox2)"

só um lembrete, coloque sempre javascript: na frente ex:

onKeyDown="javascript:mudarFocus(this, 3, this.form.TextBox2)"
el_loko

plic_ploc:
Se os campos estiverem dentro de um mesmo form e o nome do campo for TextBox2 faça assim:

onKeyDown="mudarFocus(this, 3, this.form.TextBox2)"

só um lembrete, coloque sempre javascript: na frente ex:

onKeyDown="javascript:mudarFocus(this, 3, this.form.TextBox2)"

exatamente isso plic_ploc
a function ficou assim:

<script type="text/javascript">
    function mudarFocus(campo, maxLenght, proximoCampo) {
        if (maxLenght == campo.value.length) {
            proximoCampo.focus();
        }
    }
    
</script>

e o evento assim:

RESOLVIDO :smiley:

muito obrigado!

Criado 14 de agosto de 2009
Ultima resposta 14 de ago. de 2009
Respostas 7
Participantes 4