corrigir código javascript
20/08/2019
0
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
Posts
21/08/2019
Luiz Neto
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
21/08/2019
Alex William
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
21/08/2019
Renan Longhi
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
30/08/2019
Alex William
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
Clique aqui para fazer login e interagir na Comunidade :)