Erro ao passar variavel como parametro em uma função javascript

4 respostas
farzac

Pessoal

Alguem sabe como faço para passar a variavel tempo como parametro na função passaValor.
Se eu passar direto o numero na função da certo, porem quando tento passar como parametro a variavel tempo, me retorna erro o script da função.

while (res.next()) { out.println("<tr>"); int tempo= res.getInt("tempo_ligacao"); out.println("<td align='center'>" + res.getDate("data_ligacao") + "</td>"); out.println("<td align='left'>" + res.getString("numero_discado") + "</td>"); out.println("<td align='left'>" + res.getString("destino_ligacao") + "</td>"); out.println("<td align='center'>"+ "<SELECT NAME='cbo_lista' ONCLICK='passaValor(this.options[this.selectedIndex].value, tempo)'> " + "<OPTION VALUE='P'>Particular</OPTION>" + "<OPTION VALUE='S'>Serviço</OPTION>" + "</SELECT></td>"); out.println("</tr>"); }

Segue abaixo a função passaValor

<script language="JavaScript" type="text/javascript"> function passaValor(combo,valor) { //document.getElementById("TXT_VALOR").value = combo; alert("teste"+combo+valor); } </script>

Espero que alguem possa me ajudar

Desde ja, muito obrigado.

4 Respostas

MarcioTavares

Dá uma olhada na linha 8 e vê se é isso que vc quer.

while (res.next()) {
               out.println("<tr>");
               int tempo= res.getInt("tempo_ligacao");
               out.println("<td align='center'>" + res.getDate("data_ligacao") + "</td>");
               out.println("<td align='left'>" + res.getString("numero_discado") + "</td>");
               out.println("<td align='left'>" + res.getString("destino_ligacao") + "</td>");
               out.println("<td align='center'>"+
                        "<SELECT NAME='cbo_lista' ONCLICK='passaValor(this.options[this.selectedIndex].value, '" + tempo + "')'> " +
                               "<OPTION VALUE='P'>Particular</OPTION>" +
                               "<OPTION VALUE='S'>Serviço</OPTION>" +
                               "</SELECT></td>");
               out.println("</tr>");
       }
farzac

Boa tarde Marcio

Ja havia passado o parametro conforme me mostrou e mesmo assim o erro continuou.

Eu preciso que assim que eu optar pelas opçoes do combobox e clicar em um botao atualizar, os registros sejam atualizados conforme a opção que eu escolhi para cada registro.

Sera Marcio que ha um procedimento mais logico para me atender ao invez de utilizar função de javascript.

Desde ja, muito obrigado.

E
while (res.next()) {  
                out.println("<tr>");  
                int tempo= res.getInt("tempo_ligacao");  
                out.println("<td align='center'>" + res.getDate("data_ligacao") + "</td>");  
                out.println("<td align='left'>" + res.getString("numero_discado") + "</td>");  
                out.println("<td align='left'>" + res.getString("destino_ligacao") + "</td>");  
                out.println("<td align='center'>"+  
                         "<SELECT NAME='cbo_lista' ONCLICK='passaValor(this.options[this.selectedIndex].value, \"" + tempo + "\")'> " +  
                                "<OPTION VALUE='P'>Particular</OPTION>" +  
                                "<OPTION VALUE='S'>Serviço</OPTION>" +  
                                "</SELECT></td>");  
                out.println("</tr>");  
}

A aspa simples que você colocava antes e depois do número estava na verdade dando conflito com o escopo de código ONCLICK, note que o script do ONCLICK está todo dentro de aspas simples.

A solução é mudar para aspas duplas ou o argumento da função ou o bloco ONCLICK, veja o exemplo no código com a mundaça do argumento da função.

Creio que seja esse o problema…

[]'s

Emerson Rodrigo Costa

MarcioTavares

Ao invés de usar um botão de atualizar, pq vc não muda o evento do select pra onchange, no lugar de onclick?

Criado 27 de dezembro de 2009
Ultima resposta 28 de dez. de 2009
Respostas 4
Participantes 3