Ir para conteúdo

POWERED BY:

Arquivado

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

#eclipse

lógica (javascript)

Recommended Posts

Bom galera é o seguinte, já aprendi muitas coisas sobre javascript, mais como nunca trabalhei na área não sei quando aplicar javascript, por exemplo para validar campos de login e senha.. já que se o usuário desativar o javascript do navegador acho que seja inútil, entre outras coisas, então quando aplicar o javascript ?

 

E outras coisas como por exemplo, no javascript alguns scripts só rodam corretamente quando se chama através do return como por exemplo:

<html>
<head>
  <script type="text/javascript"> 

window.onload = function(){


	 function msg(a){

	  return function(){ // <- aqui !

                      alert("Você clickou no " + a);
	  }

 }
  var botao = document.getElementsByTagName("button");
  var valores = ["flamengo","vasco","botafogo","fluminense"];
  for(x = 0; x < botao.length; x++){
   botao[x].onclick = msg(valores[x]);
 }  

 }


</script>
</head>
<body>

 <button type="button"> Flamengo </button><br />
 <button type="button"> Vasco </button><br />
 <button type="button"> Botafogo </button><br />
 <button type="button"> Fluminense </button><br />

</body>
</html>

 

Nesse script se eu tirar o return o sisteminha não funfa corretamente !

Entre outras coisas o return da jeito, mais não sei pq, eu sei que o return traz um retorno de uma função, mais tem função que eu nen declaro ele e funciona normal !!!

 

Alguem pode me ajudar de forma exclarecedora ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O Javascript vai validar por exemplo se o usuário preencheu os campos login e senha, mais ele não vai verificar se a senha está correta, ele só faz uma validação previa no lado cliente antes de enviar os dados pro servidor, e quando os dados chegarem no servidor é sempre bom validar novamente.

Não tem necessidade de colocar o código todo dentro do evento onLoad, somente a atribuição ao evento onclick do botao, eu faria assim:

window.onload = function(){
var botao = document.getElementsByTagName("button");
var valores = ["flamengo","vasco","botafogo","fluminense"];
for(x = 0; x < botao.length; x++){
botao[x].onclick = msg(valores[x]);
} 

function msg(a){
alert("Você clickou no " + a);
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não falei disso não sangue bom, até funciona isso aê, mais é exatamente aê que está o problema esse for ae vai rodar os 4 valores sem eu ter clickado em nenhum deles entendeu ? já nesse que eu postei que tem o return, o nome do time so aparece se eu clickar no botão, isso que eu quero entender !!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha cara eu testei aqui e não consegui chegar a um resultado, espero que alguém ae poste alguma solução, agora eu também quero saber, mais o que eu observei aqui é que ao invés dele atribuir a função ao onclick, ele está executando ela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pois éee, eu ja tentei de várias formas mais só funcionou assim, eu tava lendo na net e vi algo sobre função callback mais não consegui entender direiro rs, mais valeu mano.. obrigado por tentar ajudar !

Compartilhar este post


Link para o post
Compartilhar em outros sites

<script>
function msg(a){
   alert("Você clickou no " + a);
}
</script>
<button type="button" onclick="msg(this.innerHTML);">Botafogo</button>

 

bom você ta com função dentro de função por isso q a função dentro da funcao msg é retornada. esse é meio q um obj msg onde você retorna uma função. você poderia fazer de outras formas

 

tipo...

function msg(mensagem){
   var m = mensagem;

   return {
       alertar: function(){
           alert(m);
       },
       escrever: function(){
           document.write(m);
       }
   }
}
//usando funcao msg 

var m = msg('uma mensagem ');

m.alertar();
m.escrever();

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.