corrigir código javascript
o código não retorna nada, alguém sabe onde está o erro?
__________________________________
html:
function ValidaForm(){ var code = ["AHFCRLUE", "ADCBEFG"]; if (document.forms[0].captcha.value != code[]) { alert("Código de verificação incorreto, favor tentar novamente"); return false; }else{ window.location.replace("https://spsseguranca.com.br/home/cadastro-para-treinamentos-em-itajai/"); return false; } }
__________________________________
html:
<form id="form1" name="form1" method="post" action="#" onsubmit="return ValidaForm()"> <label>Digite a chave de verificação: </label> <input type="text" name="captcha" id="captcha"> <input type="submit" value="Verificar"> </form>
Renan Longhi
Curtidas 0
Respostas
Luiz Neto
20/08/2019
Bom dia Renan,
substituir a linha :
Por:
Veja se isso resolve o seu problema.
Você cria uma variável idx que vai indicar a posição do valor procurado dentro da array. (IndexOf)
Sendo um valor diferente de (-1) quer duzer quer o valor encontra-se na array.
Abraços
LM
substituir a linha :
if (document.forms[0].captcha.value != code[]) {
Por:
var idx = code.indexOf(document.forms[0].captcha.value); if (idx = -1){
Veja se isso resolve o seu problema.
Você cria uma variável idx que vai indicar a posição do valor procurado dentro da array. (IndexOf)
Sendo um valor diferente de (-1) quer duzer quer o valor encontra-se na array.
Abraços
LM
GOSTEI 0
Alex William
20/08/2019
Olá amigo, tudo bem?
Vamos ao seu problema:
Primeira coisa que eu notei, que a sua variável "code" é um array de 2 posições, mas quando você testa ela, você não especifica qual posição testar.
Logo seu script tenta testar se uma "String" e um "Array" são idênticos e isso gera erro na função.
Tente desta forma:
Caso você use somente estes dois códigos do captcha, ai pode ser diretamente testados, mas se você tiver muitos codigos de captcha, deve fazer um for para testar todos.
Espero ter ajudado. :D
Vamos ao seu problema:
Primeira coisa que eu notei, que a sua variável "code" é um array de 2 posições, mas quando você testa ela, você não especifica qual posição testar.
Logo seu script tenta testar se uma "String" e um "Array" são idênticos e isso gera erro na função.
Tente desta forma:
<script> function ValidaForm(){ var code = ["AHFCRLUE", "ADCBEFG"]; if (document.forms[0].captcha.value != code[0] && document.forms[0].captcha.value != code[1]) { alert("Código de verificação incorreto, favor tentar novamente"); return false; }else{ window.location.replace("https://spsseguranca.com.br/home/cadastro-para-treinamentos-em-itajai/"); return false; } } </script> <form id="form1" name="form1" method="post" action="#" onsubmit="return ValidaForm()"> <label>Digite a chave de verificação: </label> <input type="text" name="captcha" id="captcha"> <input type="submit" value="Verificar"> </form>
Caso você use somente estes dois códigos do captcha, ai pode ser diretamente testados, mas se você tiver muitos codigos de captcha, deve fazer um for para testar todos.
Espero ter ajudado. :D
GOSTEI 0
Renan Longhi
20/08/2019
Olá amigo, tudo bem?
Vamos ao seu problema:
Primeira coisa que eu notei, que a sua variável "code" é um array de 2 posições, mas quando você testa ela, você não especifica qual posição testar.
Logo seu script tenta testar se uma "String" e um "Array" são idênticos e isso gera erro na função.
Tente desta forma:
Caso você use somente estes dois códigos do captcha, ai pode ser diretamente testados, mas se você tiver muitos codigos de captcha, deve fazer um for para testar todos.
Espero ter ajudado. :D
Vamos ao seu problema:
Primeira coisa que eu notei, que a sua variável "code" é um array de 2 posições, mas quando você testa ela, você não especifica qual posição testar.
Logo seu script tenta testar se uma "String" e um "Array" são idênticos e isso gera erro na função.
Tente desta forma:
<script> function ValidaForm(){ var code = ["AHFCRLUE", "ADCBEFG"]; if (document.forms[0].captcha.value != code[0] && document.forms[0].captcha.value != code[1]) { alert("Código de verificação incorreto, favor tentar novamente"); return false; }else{ window.location.replace("https://spsseguranca.com.br/home/cadastro-para-treinamentos-em-itajai/"); return false; } } </script> <form id="form1" name="form1" method="post" action="#" onsubmit="return ValidaForm()"> <label>Digite a chave de verificação: </label> <input type="text" name="captcha" id="captcha"> <input type="submit" value="Verificar"> </form>
Caso você use somente estes dois códigos do captcha, ai pode ser diretamente testados, mas se você tiver muitos codigos de captcha, deve fazer um for para testar todos.
Espero ter ajudado. :D
Muito obrigado pela ajuda, nem tinha pensado no for. Pode me ajudar a arrumá-lo? Meu código está assim por enquanto:
function ValidaForm(){ var code = ["AHFCRLUE", "ADCBEFG"]; var i; for(i=0; i<code.length; i++){ if (document.forms[0].captcha.value == code[i]) { window.location.replace("https://spsseguranca.com.br/home/cadastro-para-treinamentos-em-itajai/"); return false; } else{ alert("Código de verificação incorreto, favor tentar novamente"); return false; } } }
Mas só esta funcionando com a primeira chave, com o else fora também não está funcionando. Estou pesquisando aqui mas sou novato na programação kkk
Muito obrigado pela ajuda
GOSTEI 0
Alex William
20/08/2019
Olá amigo, tudo bem?
Vamos ao seu problema:
Primeira coisa que eu notei, que a sua variável "code" é um array de 2 posições, mas quando você testa ela, você não especifica qual posição testar.
Logo seu script tenta testar se uma "String" e um "Array" são idênticos e isso gera erro na função.
Tente desta forma:
Caso você use somente estes dois códigos do captcha, ai pode ser diretamente testados, mas se você tiver muitos codigos de captcha, deve fazer um for para testar todos.
Espero ter ajudado. :D
Vamos ao seu problema:
Primeira coisa que eu notei, que a sua variável "code" é um array de 2 posições, mas quando você testa ela, você não especifica qual posição testar.
Logo seu script tenta testar se uma "String" e um "Array" são idênticos e isso gera erro na função.
Tente desta forma:
<script> function ValidaForm(){ var code = ["AHFCRLUE", "ADCBEFG"]; if (document.forms[0].captcha.value != code[0] && document.forms[0].captcha.value != code[1]) { alert("Código de verificação incorreto, favor tentar novamente"); return false; }else{ window.location.replace("https://spsseguranca.com.br/home/cadastro-para-treinamentos-em-itajai/"); return false; } } </script> <form id="form1" name="form1" method="post" action="#" onsubmit="return ValidaForm()"> <label>Digite a chave de verificação: </label> <input type="text" name="captcha" id="captcha"> <input type="submit" value="Verificar"> </form>
Caso você use somente estes dois códigos do captcha, ai pode ser diretamente testados, mas se você tiver muitos codigos de captcha, deve fazer um for para testar todos.
Espero ter ajudado. :D
Muito obrigado pela ajuda, nem tinha pensado no for. Pode me ajudar a arrumá-lo? Meu código está assim por enquanto:
function ValidaForm(){ var code = ["AHFCRLUE", "ADCBEFG"]; var i; for(i=0; i<code.length; i++){ if (document.forms[0].captcha.value == code[i]) { window.location.replace("https://spsseguranca.com.br/home/cadastro-para-treinamentos-em-itajai/"); return false; } else{ alert("Código de verificação incorreto, favor tentar novamente"); return false; } } }
Mas só esta funcionando com a primeira chave, com o else fora também não está funcionando. Estou pesquisando aqui mas sou novato na programação kkk
Muito obrigado pela ajuda
Olá amigo. Use uma variavel para verificar dentro do for. Depois teste ela.
function ValidaForm(){ var code = ["AHFCRLUE", "ADCBEFG"]; var i, isValido; for(i=0; i<code.length; i++){ if (document.forms[0].captcha.value == code[i]) { isValido = TRUE; } else{ isValido = FALSE; } } if(isValido==TRUE){ window.location.replace("https://spsseguranca.com.br/home/cadastro-para-treinamentos-em-itajai/"); return false; }else{ alert("Código de verificação incorreto, favor tentar novamente"); return false; } }
Dessa forma ele testa todas as posições informadas antes de validar se alguma das posições é igual ao captcha.
Espero ter ajudado. :D
GOSTEI 0