Ir para conteúdo

POWERED BY:

Arquivado

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

Apokalypse

Porque isto nao funciona????

Recommended Posts

Porque isso nao funciona??

 

function teste(campo)

{

document.formulario.campo.focus();

}

 

formulario = nome do meu formulario

campo = valor que eu preencho no funcao para dizer qual o campo do formulario vou pegar.

fiz usso pra poupar, pra nao ter que criar uma funcao para cada item.

Como devo proceder??

erro que esta apresentando: 'document.formulario.campo' é nulo ou não é um objeto.

 

Porque ta dando esse erro??????

Como eu poderia fazer pra solucionar este problema??

 

Valeu! http://forum.imasters.com.br/public/style_emoticons/default/bye1.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, a primeira coisa a se verificar é se você está chamando essa função após o carregamento da página. Se você chamá-la antes da página carregar o HTML do formulário, pode dar esse erro... então, é bom associá-la ao evento onload do objeto "body".

 

Fora isso, eu faria essa função um pouco diferente... esse campo tem um atributo ID? Se sim, é melhor rastreá-lo com o document.getElementById, que deve funcionar em 99% dos browsers:

 

function foco(campoID) {

document.getElementById(campoID).focus();

}

 

Falou!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Assim também, sem usar ID:

 

function teste(campo) {var foco = eval("document.formulario."+campo+".focus();");}

<{POST_SNAPBACK}>

Cara! era isso mesmo que eu precisava. Eu nao conheco nada de javascript e estou dando uma de metido pra fazer um editor de html para um cliente.

 

Valeu pela ajuda.Isso acabou com 99% dos meus problemas, pois eu estava criando uma funcao para cada tipo de dados....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tome cuidado ao utilizar o eval() ele pode gerar ações desagradáveis...

 

Utilize a forma que o Ilidan te passou, ou se quiser continuar a trabalhar com o name, utilize o

document.getElementsByName(name)[0].focus()

Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tome cuidado ao utilizar o eval() ele pode gerar ações desagradáveis...

 

Utilize a forma que o Ilidan te passou, ou se quiser continuar a trabalhar com o name, utilize o

document.getElementsByName(name)[0].focus()
Abraço

<{POST_SNAPBACK}>

Como assim desagradáveis?? Travar navegador??? coisas assim?

Compartilhar este post


Link para o post
Compartilhar em outros sites

vou postar aqui só para não ficar sem resposta esse tópico...

O eval trabalha com um parâmetro string e o executa, a menos q você trabalhe com uma boa precisão(o que indica q o parâmetro não varie) não é aconselhavél o uso, pois você não terá como recuperar o erro.Eu utilizo o eval unicamente para atribuir valores a eventos, onde os parâmetros são fixos. Não estou dizendo q você não pode utilizar, e que a forma q você fez está errada, quero deixar isso bem claro, já tive experiências com o eval um pouco desagradáveis e tô passando isso.Abraços

Nesse caso, se por exemplo não vier valor no parâmetro ele vai executar o eval e não vai fazer nada. Se o eval for executado antes do carregamento do formulário ele não dará erro e continuará com o script não executando o que teria que ser executado...Não sei se fui claro... Mas como disse no texto acima, isso vai de cada programador... felismente agente tem várias opções para executar a mesma tarefa, por isso tomem isso como uma outra forma de sefazer e não como uma correção...Abraço

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crystian, entendi o que qis dizer.Fiz um teste: carreguei o script atravez de um arquivo separado (.js) e mandei chama-lo no head, antes de carregar o formulário. A primeira vez que clico no botão para executar o script, ele nao executa e também não apresente nenhum erro! E como se ele localizasse o que eu estava procurando, mas nao tivesse atribuido a algo ainda...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como você tentou?

Assim funciona

function teste(campo) {document.formulario.elements[campo].focus();}
ou assim, que é melhor

function teste(campo) {document.getElementById(campo).focus();}
Mas se for usar assim, você deve dar um id para o campo..

Compartilhar este post


Link para o post
Compartilhar em outros sites

pra ti ver como as vezes o eval pode não ser a melhor opção... tenta fazer do jeito q te falei e vê se dá certo...

 

Abraço

 

PS.:

Lembrando que você também pode usar um getElementsByName(Campo)[indice]

Cuidado com o índice, ou melhor, com a falta dele...

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.