Passagem de parametros para JS

18 respostas
F

Senhores,

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?

<script language='javascript'>

function alerta(valor){

                for(var i=0; i < valor; i++){
                          var resp = "reposta"+i;
                          elem = document.getElementById(resp);
                          if (elem == ""){
                          
                          msg = "Preencher a pergunta "+resp;
                          alert( msg );
                                          }
                       }


}


</script>

Obrigado

18 Respostas

lbosco

assim?

elem = document.getElementById("valor"+valor2+resp);
wag_ferreira

Ola,

Por que vc está fazendo um document.getElementById do resp???

F

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 );  
 }
blz?
wag_ferreira

ou poderia varrer seu form:

assim

function alertaResposta(form){

for(var i=0; i< form.lenght; i++){
    
           if(form[i].value == ""){
                  window.alert("Porfavor preecher campo: "+ form[i];
            }

}
}

é isso ae???

F

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

Até agora nada…
:frowning:

wag_ferreira

São muitos campos que tu tem que validar?
Coloque o seu HTML inteiro ae para eu dar uma olhada!!!

F
//inicio do form
<form action = '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>
  &lt;/select&gt;</font>&lt;/td&gt;&lt;td&gt;&lt;textarea name='justificativa0' rows=3 cols=35&gt;&lt;/textarea&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;input type = 'hidden' name ='pergunta_id1' value ='10'&gt;&lt;input type = 'hidden' name ='pesquisa_id1' value ='5'&gt;&lt;td&gt;<font face = 'arial' size = '2'> 2</font>&lt;/td&gt;&lt;td&gt;<font face = 'arial' size = '2'> O que vc acha do ensino da maça?</font>&lt;/td&gt;&lt;td&gt;<font size='2' face='Verdana, Arial, Helvetica, sans-serif'>
  &lt;select size='1' name='resposta1'&gt;
  &lt;option selected value=''&gt;&lt;/option&gt;   &lt;option value='MS'&gt;Muito suficiente&lt;/option&gt;

  &lt;option value='SUF'&gt;Suficiente&lt;/option&gt;
  &lt;option value='I'&gt;Insuficiente&lt;/option&gt;
  &lt;/select&gt;</font>&lt;/td&gt;&lt;td&gt;&lt;textarea name='justificativa1' rows=3 cols=35&gt;&lt;/textarea&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;input type = 'hidden' name ='pergunta_id2' value ='11'&gt;&lt;input type = 'hidden' name ='pesquisa_id2' value ='5'&gt;&lt;td&gt;<font face = 'arial' size = '2'> 3</font>&lt;/td&gt;&lt;td&gt;<font face = 'arial' size = '2'> Vc gosta de melancia?</font>&lt;/td&gt;&lt;td&gt;<font size='2' face='Verdana, Arial, Helvetica, sans-serif'>
  &lt;select size='1' name='resposta2'&gt;
  &lt;option selected value=''&gt;&lt;/option&gt;    &lt;option value='SIM'&gt;Sim&lt;/option&gt;

  &lt;option value='N'&gt;Não&lt;/option&gt;
  &lt;/select&gt;</font>&lt;/td&gt;&lt;td&gt;&lt;textarea name='justificativa2' rows=3 cols=35&gt;&lt;/textarea&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;<br>

&lt;script language='javascript'&gt;



    function alertaResposta(form){

    for(var i=0; i&lt; form.lenght; i++){

               if(form[i].value == ""){
                      window.alert("Porfavor preecher campo: "+ form[i];
                }

    }
   }
&lt;/script&gt;

//botao enviar

&lt;input type="submit"  value="Enviar" &gt;
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.

function &lt;nomedatuafuncao&gt;(form){

var formulario = document.getElementById(form);
var campo = formulario.getElementByTagName();

       for(var i=0; i &lt; campo.length; i++){
...
.......... tua logica
       }

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

Obrigado,

Estarei testando depois com mais calma (estou terminado um outro form)

Quaquer dúvida eu estarei postando.

Muito obrigado
:smiley:

Criado 24 de setembro de 2008
Ultima resposta 24 de set. de 2008
Respostas 18
Participantes 3