RodBAdbOY Postado Dezembro 21, 2004 Denunciar Share Postado Dezembro 21, 2004 Pô pessoal o innerHTML e o event.keyCode não estão funcionando em meu código, será que teria como eu substituí-los? Mas para usar no Netscape... Abraço e sucesso a todos... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 renan_doidera Postado Dezembro 22, 2004 Denunciar Share Postado Dezembro 22, 2004 Muito estranho isso... eles com certeza funcionam sim. Será que você está usando eles de forma errada? Posta o código pra gente ver se descobre alguma coisa.Falows Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodBAdbOY Postado Dezembro 22, 2004 Autor Denunciar Share Postado Dezembro 22, 2004 Bom Renan, no IE funciona normalmente mas já no Netscape não.Visitei o site www.w3schools.com, que o Crystian me passou, e lá mostrava o keyCode, do event, com o IE suportando e o Nestcape não suportando. Já o innerHTML não encontrei no site, mas não está funcionando também.E agora, o que eu faço? Se esses dois códigos não funcionam o site fica quase que inutilizável.Abraço e sucesso a todos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Dezembro 22, 2004 Denunciar Share Postado Dezembro 22, 2004 Bom vou tentar te explicar algumas coisas sobre esses dois métodos(Propriedades)... O event.keyCode depende unica e exclusivamente do evento que você está chamando a função, então provavelmente você está chamando a função q contém o keyCode através do onkeypress e esse evento não tem o efeito desejado nos browsers de padrão Netscape, portanto tente utilizar o onKeyDown ou onKeyUp. Já a propriedade InnerHTML funciona também única e exclusivamente com elementos que tenham tag de abertura e fechamento, pois assim o innerHTML trabalharia dentro do corpo do elemento. Ex.: você consegue pegar um innerHTML da tag <td>, <tr>, <table> pois elas possuem tag de fechamento. Agora você não consegue pegar o innerHTML de uma tag <input> por exemplo pois não possui um corpo(que seja separado por tag de abertura e fechamento).Acharia melhor você postar o código se não conseguir porque fica dificil saber o que realmente não está funcionando, porque os dois métodos q você fala funciona no Netscape...AbraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodBAdbOY Postado Dezembro 23, 2004 Autor Denunciar Share Postado Dezembro 23, 2004 Dá uma olhadinha ae. //Essa função não está funcionando no Netscape, o keyCode. //Ela é para não validar a digitação de números e caracteres indevidos function somente_letra() { if (event.keyCode<65 || event.keyCode>90) { if ( event.keyCode==46 || event.keyCode==32 || event.keyCode==8 || event.keyCode==219 || event.keyCode==222 || event.keyCode==186 || event.keyCode==37 || event.keyCode==39 || event.keyCode==9) { //valida delete, barra de spaço, backspace, acento agudo, acento circunflexo e til event.returnValue = true; } else { event.returnValue = false; } } } //Essa outra função também não está funcionando function pula_campo(objeto,proximo) { strObjeto = new String(objeto.value); if (objeto.size == (strObjeto.length)) { proximo.focus(); } } NOME: <INPUT type="text" name="nome" value="" onkeydown="javascript:somente_letra();" onkeyup="pula_campo(this,idade);" size="40" maxlength="40"><FONT size="-1">(apenas letras)</FONT><br> IDADE: <INPUT ty=e"text" name="idade" value="" onkeydown="javascript:somente_numero();" onkeyup="pula_campo(this,endereco);" size="3" maxlength="3"> //Essa função não está funcionando no Netscape, o innerHTML. function implicito(codigo) { if (codigo == "exibe") { exibeImplicito.innerHTML = "<INPUT type='checkbox' name='qtde1'> 1 a 7 cigarros por dia"+"<br>"+"<INPUT type='checkbox' name='qtde2'> 8 a 16 cigarros por dia"+"<br>"+"<INPUT type='checkbox' name='qtde3'> 1 maço de cigarro por dia"+"<br>"+"<INPUT type='checkbox' name='qtde4'> 8 a 15 maços por semana"+"<br>"+"<INPUT type='checkbox' name='qtde5'> É uma Chaminé de Eskimó"+"<br>" } if (codigo == 1) { exibeImplicito.innerHTML = "" } } <b>Quanto a Fumo?</b><br> <INPUT type="radio" name="fumo" onclick="implicito(1);"> Não Fumo <br> <INPUT type="radio" name="fumo" onclick="implicito('exibe');"> Sou ExFumante <br> <INPUT type="radio" name="fumo" onclick="implicito('exibe');"> Fumo Socialmente <br> <INPUT type="radio" name="fumo" onclick="implicito('exibe');"> Puxeta FumaFuma <br> <span id=exibeImplicito></span> As duas funcionam normalmente no IE, somente no Netscape que não, se puderem me dar uma forcinha eu agradeço muito.Abraço e sucesso a todos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Dezembro 24, 2004 Denunciar Share Postado Dezembro 24, 2004 Bom vamos lá...Primeiro eu não achei o inicio dos scripts no teu código, não sei se tu quiz dar uma economizada, acredito q sim. Não achei a função somente_numero que você está chamando na idade. Para ti acessar algum elemento pelo id que funcione no Netscape você tem que utilizar o document.getElementById("exibeImplicito").innerHTML, não tem nada a de errado com a propriedade innerHTML.Para ti fazer funcionar o keyCode você precisa passar o evento para a função, se não ela não vai ter como saber qual evento está chamando ela, se é o onkeydown ou onkeypress ou onkeyup. Então coloque um parâmetro evt lá na function e na hora de chama-la passe this.event pra ela...Faz essas alterações depois me diz o resultado...AbraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodBAdbOY Postado Dezembro 27, 2004 Autor Denunciar Share Postado Dezembro 27, 2004 Pô Crystian, ainda não funcionou. Eu acho que devo estar fazendo alguma coisa errada que eu não saiba com certeza.O código todo é esse ae, e eu quis não ocupar muito do tópico com o site todo, mas como parece não ter jeito <html> <HEAD> <title>Testando Validade de Formulários</title> <script LANGUAGE="JavaScript"> function confirmApaga() { if (confirm("Porque está apagando?\n Não sabe o que quer mesmo hein!!!")) { return true; } else { return false; } } </SCRIPT> </HEAD> <BODY onselectstart="return false" oncontextmenu="return false;" link="blue" alink="purple" vlink="blue"> <script LANGUAGE="JavaScript" SRC="formulario.js"></SCRIPT> <FONT size="+1">ENVIAR INFORMAÇÕES DO FORMULÁRIO</FONT> <FORM name="form1" action="valida.html" method="post" onsubmit="return tstEmail(document.form1.email);"> NOME: <INPUT type="text" name="nome" value="" onkeydown="javascript:validaString(this.event);" onkeyup="pula_campo(this,idade);" size="40" maxlength="40"><FONT size="-1">(apenas letras)</FONT><br> IDADE: <INPUT type="text" name="idade" value="" onKeyDown="javascript:validaInt(this.event);" size="2" maxlength="3"><FONT size="-1">(apenas numeros)</FONT><br> SEXO: <INPUT type="radio" name="sexo" value="Masculino" onclick="glicose.focus();">Masculino <INPUT type="radio" name="sexo" value="Feminino" onclick="glicose.focus();">Feminino<br> Glicose: <INPUT type="text" name="glicose" size="5" value="" maxlength="5" onkeydown="javascript:validaFloat(this.value, this.event);" onkeyup="pula_campo(this,email);"><br> E-Mail: <INPUT type="text" name="email" size="30" value="" maxlength="30" onkeyup="pula_campo(this,confirmacaoEmail);"><br> E-Mail de novo: <INPUT type="text" name="confirmacaoEmail" value="" size="30" maxlentgh="30"><br> <br> <b>Quanto a Fumo?</b><br> <INPUT type="radio" name="fumo" onclick="implicito(1);"> Não Fumo <br> <INPUT type="radio" name="fumo" onclick="implicito('exibe');"> Sou ExFumante <br> <INPUT type="radio" name="fumo" onclick="implicito('exibe');"> Fumo Socialmente <br> <INPUT type="radio" name="fumo" onclick="implicito('exibe');"> Puxeta FumaFuma <br> <script LANGUAGE="JavaScript"> document.getElementById("exibeImplicito").innerHTML> </SCRIPT> <br> <INPUT type="submit" value="ENVIAR"> <INPUT type="reset" value="APAGAR" onclick="return confirmApaga();"> </FORM> <br><br> </BODY> </html> Não entendi uma coisa, a chamada do getElementById é assim mesmo? Aqui vai o JS chamado. // - - - - - - - - - - Funções para proibir entrada de caracter indevido - - - - - - - - - - \\ // função para String function validaString(evt) { if (evt.keyCode<65 || evt.keyCode>90) { if ( evt.keyCode==46 || evt.keyCode==32 || evt.keyCode==8 || evt.keyCode==219 || evt.keyCode==222 || evt.keyCode==186 || evt.keyCode==37 || evt.keyCode==39 || evt.keyCode==9) { //valida delete, barra de spaço, backspace, acento agudo, acento circunflexo e til evt.returnValue = true; } else { evt.returnValue = false; } } } // fim de função para String // função para Integer function validaInt(evt) { // Verifica se não é número if ( ( evt.keyCode<48 || evt.keyCode>57 ) && ( evt.keyCode<96 || evt.keyCode>105 ) ) { if ( evt.keyCode==46 || evt.keyCode==8 || evt.keyCode==37 || evt.keyCode==39 || evt.keyCode==9) { evt.returnValue = true; } else { evt.returnValue = false; } } } // fim de função para Integer //função para Float function validaFloat(str, evt) { // Verifica se não é número if ( ( evt.keyCode<48 || evt.keyCode>57 ) && ( evt.keyCode<96 || evt.keyCode>105 ) ) { if ( evt.keyCode==46 || evt.keyCode==8 || evt.keyCode==37 || evt.keyCode==39 || evt.keyCode==9) { evt.returnValue = true; } else { // Verifica se é virgula ou ponto if (evt.keyCode == 188 || evt.keyCode == 190 || evt.keyCode == 110 || evt.keyCode == 194) { // Verifica se já contem outra virgula ou ponto if ( (contem(",", str) ) || (contem(".",str) ) ) { evt.returnValue = false; } } else { evt.returnValue = false; } } } } function contem(char, str) { for (x=0;x<str.length;x++) { if(str.substring(x,x+1) == char) { return true; } } return false; } //fim de função para Float //função para e-mail function tstEmail(mail) { if (mail.value.search(/^\w+((-\w+)|(\.\w+))*\@\w+((\.|-)\w+)*\.\w+$/) == -1) { alert("Erro! E-mail inválido!"); mail.focus(); return false; } } // - - - - - - - - - - Fim das funções para proibir entrada de caracter indevido no formulário - - - - - - - - - - \\ // - - - - - - - - - - Funcao para passar para o campo seguinte // A propriedade size do objeto deve ser igual a maxlength function pula_campo(objeto,proximo) { strObjeto = new String(objeto.value); if (objeto.size == (strObjeto.length)) { proximo.focus(); } } // - - - - - - - - - - fim de função de pula campo // - - - - - - - - - - Função de incluir opções implícitas - - - - - - - - - - \\ function implicito(codigo) { if (codigo == "exibe") { exibeImplicito.innerHTML = "<INPUT type='checkbox' name='qtde1'> 1 a 7 cigarros por dia" +"<br>" +"<INPUT type='checkbox' name='qtde2'> 8 a 16 cigarros por dia" +"<br>" +"<INPUT type='checkbox' name='qtde3'> 1 maço de cigarro por dia" +"<br>" +"<INPUT type='checkbox' name='qtde4'> 8 a 15 maços por semana" +"<br>" +"<INPUT type='checkbox' name='qtde5'> É uma Chaminé de Eskimó" +"<br>" } if (codigo == 1) { exibeImplicito.innerHTML = "" } } // - - - - - - - - - - Fim da função de incluir opções implícitas - - - - - - - - - - \\ Aí eu já fiz a mudança que você sugeriu de passar o this.event e pegar com o parâmetro, mas também não está funcionando.Se você conseguir identificar o que está errado cara, me dá uma ajuda.Abraço e sucesso a todos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Dezembro 28, 2004 Denunciar Share Postado Dezembro 28, 2004 achei alguns errinhos(que acredito você não sabia)...nessa function function contem(char, str) o nome char é reservado do javascript, troque o nome que acaba o erro. Outra coisa oque faz o código abaixo? ou melhor o que você queria fazer com esse código: <script LANGUAGE="JavaScript"> document.getElementById("exibeImplicito").innerHTML> </SCRIPT> Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodBAdbOY Postado Dezembro 28, 2004 Autor Denunciar Share Postado Dezembro 28, 2004 Não sabia que char era reservado, vou corrigir isso.Agora isso aqui, <script LANGUAGE="JavaScript"> document.getElementById("exibeImplicito").innerHTML> </SCRIPT> Fiz o que você disse, que eu tinha que utilizar o document.getElementById("exibeImplicito").innerHTML para pegar o ID, apenas o coloquei no lugar do <SPAN id=exibeImplicito></SPAN> que tinha antes.Mas creio que coloquei o getElementById no lugar errado, e eu ainda não descobri a utilização correta dele. Vou dar uma procurada para ver isso.Agradeço a ajuda.Abraço e sucessoa todos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 RodBAdbOY Postado Dezembro 28, 2004 Autor Denunciar Share Postado Dezembro 28, 2004 Ae Crystian, outra coisa, o keyCode continua não funcionando.Eu já fiz o que você disse também, que era para passar o evento como parâmetro, mas não funcionou.Eu fiz assim NOME: <INPUT type="text" name="nome" value="" onkeydown="javascript:validaString(this.event);" onkeyup="pula_campo(this,idade);" size="40" maxlength="40"><FONT size="-1">(apenas letras)</FONT><br> E tentava chamá-lo assim function validaString(evt) { if (evt.keyCode<65 || evt.keyCode>90) { if ( evt.keyCode==46 || evt.keyCode==32 || evt.keyCode==8 || evt.keyCode==219 || evt.keyCode==222 || evt.keyCode==186 || evt.keyCode==37 || evt.keyCode==39 || evt.keyCode==9) { //valida delete, barra de spaço, backspace, acento agudo, acento circunflexo e til evt.returnValue = true; } else { evt.returnValue = false; } } } // fim de função para String Antes eu não estava passando o "(this.event)", na verdade não passava nada, e não estava pegando com o "evt", onde está "evt.keyCode" estava "event.keyCode", e estava funcionando, agora não está mais nem no IE nem no NN. É só dar uma conferida no código que já postei.O que eu poderia fazer para resolver isso?Abraço e sucesso a todos. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Dezembro 28, 2004 Denunciar Share Postado Dezembro 28, 2004 (editado) tenta tirar o "this." e deixar somente o event.AbraçoCrystian Editado Dezembro 28, 2004 por Crystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
RodBAdbOY
Pô pessoal o innerHTML e o event.keyCode não estão funcionando em meu código, será que teria como eu substituí-los? Mas para usar no Netscape...
Abraço e sucesso a todos...
Link para o comentário
Compartilhar em outros sites
10 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.