+ 1

help me understand this code

Does this code even need the "return"? because with or without them the code works. And I have another question about this code the value "valid" should not be false after it is changed from true CODE: var inputs = document.getElementsByClassName('test'); var len = inputs.length; var valid = true; for(var i=0; i < len; i++) { if (!inputs[i].value) { valid = false; } } if (valid) { console.log("ok"); return true; } else { console.log("no"); return false; }

21st Apr 2019, 6:55 PM
Matheus Batista
Matheus Batista - avatar
9 odpowiedzi
+ 2
Ah ok. Acredito que entendi sua duvida agora. Ent toda vez que vc insere o input e pressiona ok ele executa o codigo com a tag script. So que ele não salva o valor de valid entre as execuções. Sua variável valid morre assim que terminar seu escopo. Dessa maneira ao pressionar o botao para uma proxima execuçao o seu codigo passa novamente por valid = true e cria uma nova variavel valid com o valor true. Realmente não ha nada mudando o valor de valid de false para o valor true. Sua variavel so esta sendo recriada todas as vezes com o valor true. Alem do mais e possivel especificar que o variavel valid nao morra depois de terminar seu escopo. É so especificar a variavel como estatica.
22nd Apr 2019, 4:21 PM
Anya
Anya - avatar
+ 2
1: don't need return statement. 2: correct, but this don't happen anywhere in the code.
21st Apr 2019, 9:46 PM
Anya
Anya - avatar
+ 1
I don't think i have understood well. I see you are Brazilian. Can you try in portuguese?
22nd Apr 2019, 12:47 PM
Anya
Anya - avatar
+ 1
Matheus Batista . O que esta acontecendo é o seguinte. O código nunca está entrando no 1 if. E nao e por causa da condicao do if imposta e sim porque a condiçao usada no for não está iterando nenhuma vez. Dessa maneira nunca passamos pelo 1 if. Sendo assim valid nunca esta mudando seu valor original. Por isto sempre esta dando true. Vc pode testar mudando seu for ou ate removendo colocando junto uma condicao if que sempre entre.
22nd Apr 2019, 3:23 PM
Anya
Anya - avatar
+ 1
Anya tendi valeuu
22nd Apr 2019, 4:22 PM
Matheus Batista
Matheus Batista - avatar
0
Anya That's not what I meant about the variable. This is so I have been observing its execution in several ways but I noticed that its root value is "true", and when it executes "if" it receives false value, from that it is fine, however when its value is "else" ( does not exist inside only has the "if") it passes true to variable being previously it was false, it changed value without setting a value?
22nd Apr 2019, 1:30 AM
Matheus Batista
Matheus Batista - avatar
0
Anya Posso sim vou começar do zero falando no código podemos ver uma variável chamada valid nela contém valor de true, quando executamos essa função o 1 If depois do For o valid recebe false, logo depois eu implemento os valores nos inputs aí valid se torna true, aí vem minha dúvida como foi que o valid recebeu true se anteriormente ele tava com valor false e em nenhum momento no código eu boto pra valid receber true novamente entendeu?
22nd Apr 2019, 2:45 PM
Matheus Batista
Matheus Batista - avatar
0
Anya Amigo vou inserir o código e vou te mandar, o 1 If ele recebeu valor de false quando verificou os inputs vazios depois disso eu mudei os inputs botando qualquer coisa dentro aí ele retornou true sendo que seu valor já havia sido mudado, e em nenhum momento eu coloquei algum código pra retorna true
22nd Apr 2019, 3:27 PM
Matheus Batista
Matheus Batista - avatar
22nd Apr 2019, 3:32 PM
Matheus Batista
Matheus Batista - avatar