Estou passando uma variável que percorre várias combobox para verificar se a avalição deixou de ser efetuada.
Minha dúvida é : como preencho o document.getElementById() com o valor concatedo? Onde errei no código abaixo?
<scriptlanguage='javascript'>functionalerta(valor){for(vari=0;i<valor;i++){varresp="reposta"+i;elem=document.getElementById(resp);if(elem==""){msg="Preencher a pergunta "+resp;alert(msg);}}}</script>
Por que vc está fazendo um document.getElementById do resp???
F
feaupi
Existe várias combobox que foram setadas num for como o nome de resposta0, resposta1,…
Preciso, num for do javascript, verificar qual pergunta deixou de ser respondida.
Não conheço muito de javascript.
lbosco
blz,
é assim,
id de um elemento você só pode ter única e exclusivamente, um para cada elemento.
Então pelo que entendi vc deve fazer assim:
elem=document.getElementById(resp); if(elem.value==""){
msg="Preencher a pergunta "+resp; alert(msg); }
DEsculpe a falta de conhecimento, mas, alertaResposta() deve ficar no onsubmit do form ou no onclick do button?
lbosco
tanto faz,
porém, no onsubmit() do form é mais seguro,
pois imagine que o usuário clique “Enter”?
o evento onclick() baseia-se pelo click do mouse,
portando , o form será submetido sem validação
neste caso
F
feaupi
Até agora nada…
wag_ferreira
São muitos campos que tu tem que validar?
Coloque o seu HTML inteiro ae para eu dar uma olhada!!!
F
feaupi
//iniciodoform<formaction='processaQuestionario'method='post'name='form'onsubmit='return alertaResposta(this)'>";//codigo do for do select (tenho que pegar o name que e resposta0, resposta1.......<select size='1' name='resposta0'> <option selected value=''></option> <option value='MB'>Muito bom</option> <option value='B'>Bom</option> <option value='R'>Ruim</option> </select></font></td><td><textarea name='justificativa0' rows=3 cols=35></textarea></td></tr><tr><input type = 'hidden' name ='pergunta_id1' value ='10'><input type = 'hidden' name ='pesquisa_id1' value ='5'><td><font face = 'arial' size = '2'> 2</font></td><td><font face = 'arial' size = '2'> O que vc acha do ensino da maça?</font></td><td><font size='2' face='Verdana, Arial, Helvetica, sans-serif'> <select size='1' name='resposta1'> <option selected value=''></option> <option value='MS'>Muito suficiente</option> <option value='SUF'>Suficiente</option> <option value='I'>Insuficiente</option> </select></font></td><td><textarea name='justificativa1' rows=3 cols=35></textarea></td></tr><tr><input type = 'hidden' name ='pergunta_id2' value ='11'><input type = 'hidden' name ='pesquisa_id2' value ='5'><td><font face = 'arial' size = '2'> 3</font></td><td><font face = 'arial' size = '2'> Vc gosta de melancia?</font></td><td><font size='2' face='Verdana, Arial, Helvetica, sans-serif'> <select size='1' name='resposta2'> <option selected value=''></option> <option value='SIM'>Sim</option> <option value='N'>Não</option> </select></font></td><td><textarea name='justificativa2' rows=3 cols=35></textarea></td></tr></table><br><script language='javascript'> function alertaResposta(form){ for(var i=0; i< form.lenght; i++){ if(form[i].value == ""){ window.alert("Porfavorpreechercampo:"+ form[i]; } } }</script>//botao enviar<input type="submit" value="Enviar">
lbosco
ah só uma coisa!!!
tem uma variavel aí que parece não estar de acordo:
experimente declarar o “i” dentro do “for” sem o “var” na frente.
apenas “i=0”.
essa é uma das correções
wag_ferreira
Tenta assim:
tem uma tag no javascript que pega o teu form e varre todo ele a procura de tags name e ti forma uma array:
getElementByTagName()
agora tu faz o seguinte.
passa o nome do teu form pelo teu formulario chamando a function.
cara acho que a melhor forma de vc fazer isso é assim, essa tag ae é tri boa de ser usada, é só pegar a manha.
Mas faz o seguinte, chama essa função no botão, com o onclick.
feito!
lbosco
viu , só justifique o pq do onclick()???
wag_ferreira
Pq é o mais apropriado sei la.
Esta funcão que ele esta chamando no onsubmit não esta certa.
ou faz um onclik e um onkeypress.
tudo isto se ele direcionou para quando ele apertar no enter rolar o submit.
Coisa que quando eu quis fazer tive que mapear a tecla enter(13) para quando ser apertada rolar um submit do botão que eu quero.
lbosco
entendi,
mas entao a submissão da página vai ser feita dentro de função javascript?
wag_ferreira
Poe ser cara.
Como ele esta a passar o form, é so ele fazer dentro do form:
document.form.submit();
assim ele da um submit de dentro da função…
lbosco
sim sim , imaginei mesmo
falou!
F
feaupi
Obrigado,
Estarei testando depois com mais calma (estou terminado um outro form)