Jump to content

2 funções em 1 onchange


glicose
 Share

Recommended Posts

Eu tenho um problema, creio que vocês já devem ter passado por isso.

Eu tenho 2 eventos em um onchange

<select name"teste" onchange="verifica1();verifica2();":

O problema é que só a primeira é executada, mas se eu colocar um alert dentro da função verifica1 funciona tudo normal. O que eu entendo é que precisava dar um "pause" entre as funções. Alguém sabe como fazer isso, por favor?

Grato

Link to comment
Share on other sites

Eu tenho um problema, creio que vocês já devem ter passado por isso.

Eu tenho 2 eventos em um onchange

<select name"teste" onchange="verifica1();verifica2();":

O problema é que só a primeira é executada, mas se eu colocar um alert dentro da função verifica1 funciona tudo normal. O que eu entendo é que precisava dar um "pause" entre as funções. Alguém sabe como fazer isso, por favor?

Grato

<select name"teste" onchange="verifica1();setTimeout("verifica2()", 100);"

O q o setTimeout faz é registar a função q escreveres lá dentro (lembra-te que é uma string se escreveres o nome da função, cmo neste caso) e activá-la x milisegundos depois de executar o setTimeout. Neste caso ele chama a função verifica1() e 100 ms depois chama a função verifica2()

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

Da primeira foram eu já havia tentado, com o setTimeout também não funcionou, mas pelo menos eu aprendi essa função. Acho que essa minha idéia de dar um pause entre eles não funciona, engraçado é que um alert entre eles resolve.

Mas enfim dessa vez eu consegui resolver matando uma função, coloquei as 2 em uma só

Mas obrigado a todos 👍

Link to comment
Share on other sites

Pensava que o javascript executava cada instrução de forma síncrona, isto é, enquanto não "terminasse uma linha de código", não passava para as seguintes. Se não te importares, podes colocar o código que estavas a usar? Isso acontecia em vários browsers?

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Eu tenho um problema, creio que vocês já devem ter passado por isso.

Eu tenho 2 eventos em um onchange

<select name"teste" onchange="verifica1();verifica2();":

O problema é que só a primeira é executada, mas se eu colocar um alert dentro da função verifica1 funciona tudo normal. O que eu entendo é que precisava dar um "pause" entre as funções. Alguém sabe como fazer isso, por favor?

Grato

Não problema nenhum em colocar as duas funções seguidas dessa forma. Se a segunda função não executa é porque tens um erro de javascript algures.

Pode acontecer que alerts também provocam erros e param a execução de javascript.

Usa o firebug para verificares onde está o erro. No IE não é tão simples debugar.

Tens alguma chamada assincrona dentro da função verifica1?

Mostra o código.

Link to comment
Share on other sites

Pensava que o javascript executava cada instrução de forma síncrona, isto é, enquanto não "terminasse uma linha de código", não passava para as seguintes. Se não te importares, podes colocar o código que estavas a usar? Isso acontecia em vários browsers?

O javascript n funciona linha a linha. Funciona comando a comando.

"[Os jovens da actual geração]não lêem porque não envolve um telecomando que dê para mirar e atirar, não falam porque a trapalhice é rainha e o calão é rei" autor: thoga31

Life is a genetically transmitted disease, induced by sex, with death rate of 100%.

Link to comment
Share on other sites

Pensei que tivesse sido claro quando coloquei a expressão entre aspas para indicar "grosso modo", mas sim, é isso. Aliás, como disse atrás, instrução a instrução.

O taviroquai levantou um ponto importante, pode ser uma chamada assíncrona, por exemplo, utilizando XMLHTTrequest.

Nick antigo: softclean | Tens um projeto? | Wiki P@P

Ajuda a comunidade! Se encontrares algo de errado, usa a opção "Denunciar" por baixo de cada post.

Link to comment
Share on other sites

Então, na verdade as 2 funções são chamadas ajax

parece que isso acontece quando as 2 consultas ajax são muito grandes. Eu testei agora com duas funções simples e funciona, mas com 2 funções grandes não funciona.

O que eu fiz foi colocar um evento no onchange e o outro no onblur, porque não consegui fazer funcionar os 2 eventos no onchange

Alguém já passou por isso, de fazer duas chamadas ajax grandes e só a primeira ser executada?

Grato

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.