Ir para conteúdo
Fórum Script Brasil
  • 0

Não Estão Funcionando No Netscape,


RodBAdbOY

Pergunta

10 respostass a esta questão

Posts Recomendados

  • 0

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.

Link para o comentário
Compartilhar em outros sites

  • 0

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ço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

Dá uma olhadinha ae. dry.gif

//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. smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

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ço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

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 sad.gif

<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 &nbsp; <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"> &nbsp;&nbsp;&nbsp; <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. smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

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>

Link para o comentário
Compartilhar em outros sites

  • 0

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. smile.gif

Link para o comentário
Compartilhar em outros sites

  • 0

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. smile.gif

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...