jgd Postado Novembro 11, 2010 Denunciar Share Postado Novembro 11, 2010 Gente, Porque num funciona: <script>function pegaDinamico(id_xis){alert(id_xis);document.getElementById("teste"+id_xis).innerHTML="aqui";}</script>Agradeço qualquer ajuda. Jgd Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Romerito Postado Novembro 11, 2010 Denunciar Share Postado Novembro 11, 2010 i aew jgd, bom isso funciona sim, mas depende do tipo de objeto que você esta tentando usar o innerHTML! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Willian Gustavo Veiga Postado Novembro 11, 2010 Denunciar Share Postado Novembro 11, 2010 Boa tarde, tudo bem?Poste mais código.Um abraço. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 .Andreia. Postado Novembro 14, 2010 Denunciar Share Postado Novembro 14, 2010 (editado) o que retorna o seu alert? o objeto tem ID ? O melhor mesmo pra tentar te ajudar, é você postando o resto do codigo Editado Novembro 14, 2010 por .Andreia. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jgd Postado Novembro 16, 2010 Autor Denunciar Share Postado Novembro 16, 2010 Ola gente. Romerito: O objeto na situação acima é um div normal. .Andreia. e demais colegas... É o mesmo raciocínio do código abaixo: Neste caso, semelhante ao exemplo de cima. Tenhos varios radiobox o qual atribuo "ID's" a partir de um consultas no banco de dados: Cada radio tem 5 valores distintos ( values 1,2,3,4,0) atribuo e pegos os valores como abaixo: while not rsS0.eof %> <tr bgcolor="<%=sCorForTit2%>"><td align='right'><font size=1><%=rsS0("Avaliacao")%> </td> <td align="center"><input type="radio" name="item_<%=n%>_<%=n2%>" value="1" onclick="verSelItem(<%=n%>,<%=n2%>,this.value);"/> </td> <td align="center"><input type="radio" name="item_<%=n%>_<%=n2%>" value="2" onclick="verSelItem(<%=n%>,<%=n2%>,this.value);"/> </td> <td align="center"><input type="radio" name="item_<%=n%>_<%=n2%>" value="3" onclick="verSelItem(<%=n%>,<%=n2%>,this.value);"/> </td> <td align="center"><input type="radio" name="item_<%=n%>_<%=n2%>" value="4" onclick="verSelItem(<%=n%>,<%=n2%>,this.value);"/> </td> <td align="center"><input type="radio" name="item_<%=n%>_<%=n2%>" value="0" onclick="verSelItem(<%=n%>,<%=n2%>,this.value);"/> <input type="hidden" name="vrItem_<%=n%>_<%=n2%>" id='TI' size=2 value=""/> </td> </tr> <% n2=n2+1 rsS0.MoveNext Wend Vejam que desta forma atribuo ID´s dinamnicamente conforme os itens que estão no banco de dados. O resto é basico... Ao chamar : verSelItem pego o seu valor e somo aos demais valores dos outros radios e assum tenho o total de pontos selecionados. <script> function verSelItem(n,n2,valor) { if (valor == "") { document.getElementById("vrItem_" + n + "_" + n2).value = ""; } else { document.getElementById("vrItem_" + n + "_" + n2).value = valor; var inputs, x, selecionados = 0; var string1 = "0"; var string2 = ""; inputs = document.getElementsByTagName('input'); for (x = 0; x < inputs.length; x++) { if (inputs[x].type == 'hidden') { if (inputs[x].id == 'TI') { if (inputs[x].value == "") { } else { string2 = inputs[x].value string2 = string2.replace(".", "").replace(",", ".") //alert(string2) string1 = (parseInt(string1) + parseInt(string2)); //alert(string1) } selecionados++; } } } //////////// document.getElementById("pontos").value = string1; /// neste caso trata-se de um objeto input } } </script> No IE roda certinho. No FireFox da : Erro: document.getElementById("vrItem_" + n + "_" + n2) is null Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jgd Postado Novembro 16, 2010 Autor Denunciar Share Postado Novembro 16, 2010 Gente! Tentei via : document.getElementsByTagName(Xid).value = "";Não da erro porém também não soma os valores. Tem que ter um forma de passar os valores via variavel..function verSelItem(n, n2, valor) { alert(n + " = " + n2 + " = " + valor) var Xid = "vrItem_"+ n+ "_"+ n2; alert(Xid); alert(document.getElementById(""+Xid).value); if (valor == "") { // eval('opener.document.form,' + variavel + '.value') document.getElementsByTagName getElementById(Xid).value = ""; } else { document.getElementById(Xid).value = valor; ..... </script> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 jgd Postado Novembro 17, 2010 Autor Denunciar Share Postado Novembro 17, 2010 Gente, Finalmente consegui fazer funcionar pelo menos um dos problemas que tinha com o getElementById no Firefox. Tinha que ter uma forma de passar o valor do item escolhido para a somatória total, sem “engessar” o nome dos elementos mantendo assim o form dinâmico. Agora vou partir para o segundo tb é somatório só que com valores moeda...Solução: passei na função o nome do campo como objeto. Creio eu.Então: Considerando que tenho os campos /inputs gerando a partir do laço (neste caso asp). Sendo seu valor defaut = 0”” chamo verSelItem para pegar o valor escolhido e passo para o hidden referencia para aplicar a somatória geral. Atribuição dos nome dos campos. n2=1 while not rsS0.eof %> <tr bgcolor="<%=sCorForTit2%>"> <td align='right'> <font size=1><%=rsS0("Avaliacao")%> </td> <td align="center"> <input type="radio" name="item_<%=n%>_<%=n2%>" value="1" id="x1" onclick="verSelItem(document.form.vrItem_<%=n%>_<%=n2%>,<%=n%>,<%=n2%>,this.value);"> </td> <td align="center"> <input type="radio" name="item_<%=n%>_<%=n2%>" value="2" id="x1" onclick="verSelItem(document.form.vrItem_<%=n%>_<%=n2%>,<%=n%>,<%=n2%>,this.value);"> </td> <td align="center"> <input type="radio" name="item_<%=n%>_<%=n2%>" value="3" id="x1" onclick="verSelItem(document.form.vrItem_<%=n%>_<%=n2%>,<%=n%>,<%=n2%>,this.value);"> </td> <td align="center"> <input type="radio" name="item_<%=n%>_<%=n2%>" value="4" id="x1" onclick="verSelItem(document.form.vrItem_<%=n%>_<%=n2%>,<%=n%>,<%=n2%>,this.value);"> </td> <td align="center"> <input type="radio" name="item_<%=n%>_<%=n2%>" value="0" id="x1" onclick="verSelItem(document.form.vrItem_<%=n%>_<%=n2%>,<%=n%>,<%=n2%>,this.value);"> <input type="hidden" name="vrItem_<%=n%>_<%=n2%>" id='TI' size=2 value="0"> </td> </tr> <% n2=n2+1 rsS0.MoveNext Wend Função javaScript verSelItem <script> function verSelItem(obj,n, n2, valor) { var inputs, x, selecionados = 0; var string1 = "0"; var string2 = "0"; inputs = document.getElementsByTagName('input'); var Xid = "vrItem_"+ n+ "_"+ n2; var Xid2 = "item_" + n + "_" + n2; for (x = 0; x < inputs.length; x++) { if (inputs[x].type == 'radio') { if (inputs[x].id == 'x1') { // alert(inputs[x].name +" = "+ Xid2 +" = "+ valor) if (inputs[x].name == Xid2) { obj.value = valor; } } } } //////////// for (x = 0; x < inputs.length; x++) { if (inputs[x].type == 'hidden') { if (inputs[x].id == 'TI') { if (inputs[x].value == "") { } else { string2 = inputs[x].value string2 = string2.replace(".", "").replace(",", ".") //alert(string2) string1 = (parseInt(string1) + parseInt(string2)); //alert(string1) } selecionados++; } } } document.form.pontos.value = string1; } </script>Por favor, se algum puder avaliar a solução agradeceria. Outra coisa. Só testei no FF e E.I. Demais navegadores não tenho disponível. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
jgd
Gente,
Porque num funciona:
Agradeço qualquer ajuda.
Jgd
Link para o comentário
Compartilhar em outros sites
6 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.