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

Erro em js, não entendo


Guest --DackAle --

Pergunta

Guest --DackAle --

Fala pessoal

Seguinte, sempre acontece um erro quando mecho com JS, mas hoje me irritou :P

Muitas vezes quando tento manipular campos, tanto usando o “document.nomedoformulario.nomedocampo" quando "document.getElementById" me gera um erro de "has no properties", Por exemplo:

"document.form has no properties"

Linha: document.form.variasp_horario.options[document.form.variasp_horario.options.length] = new Option('Teste',true);

"document.getElementById("v_frete") has no properties"

Linha: document.getElementById("v_frete").value = "bh";

E sinceramente não sei mas o que fazer, pois existem campos dentro do MESMO formulário, que manipulo normalmente e estes não. Já troquei o nome deles, do formulário e etc, mas NADA.

Por que isso ocorre? Alguém sabe me explicar?

Um exemplo, neste trecho eu a manipulação no “v_bairro2” e funciona perfeito e no v_frete, tentei de duas formas e as duas dão erro de propriedade, alguém sabe me explicar esse fenômeno?

{
    varRetorno = xmlHTTP.responseText;
    var quebraRetorno2
    quebraRetorno2 = varRetorno.split("///");
    alert("O valor do frete é: " + quebraRetorno2[0]);
    //Preenche o paragrafo na tabela com a porcentagem de desconto
    document.getElementById('v_bairro2').innerHTML = quebraRetorno2[0];
    //Preenche um form hidden com o valor total da compra
    document.getElementById("v_frete").value = "bh";
    document.form.v_frete.value = "ah";
}

Abraços e valeu galera

Editado por fercosmig
Utilize as tags de código. Facilitam a visualização.
Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0
Guest --DackAle --

Aqui tem um exemplo besta, mas que tem o erro que não entendo...rs

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Artesanato Gastron&ocirc;mico</title>
    <script language="javascript">
        document.form.variasp_horario.style.display = 'none';
    </script>
</head>
<body>
    <div id="layout">
        <form action="finalizar.asp" id="form" name="form" method="post" >
            <select name="variasp_horario" class="select" id="variasp_horario">
                <option value="Teste">teste</option>
            </select>
        </form>
    </div>
</body>
</html>

Link para o comentário
Compartilhar em outros sites

  • 0

opaaa!!!

beleza???

testei aki seu exemplo...e acho q descobri porque dá erro...seguinte:

na maioria das linguagens de programação o código é lido e interpretado "por gravidade" de cima para baixo (num sei se é o termo correto), portanto neste exemplo, ele primeiro deve gerar o select, para depois alterar sua propriedade...alterei o código para exemplificar:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pt-br" lang="pt-br">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Artesanato Gastron&ocirc;mico</title>
    
</head>
<body>
    <div id="layout">
        <form action="finalizar.asp" id="form" name="form" method="post" >
            <select name="variasp_horario" class="select" id="variasp_horario">
                <option value="Teste">teste</option>
            </select>
        </form>
    </div>
    <script language="javascript">
        document.form.variasp_horario.style.display = 'none';    
    </script>
</body>
</html>

observe que o javascript vem depois do HTML...

entendeste???

flow, abraçoss!!

[EDITADO]

display = 'block' para 'none'

Editado por Allan Rodrigo
Link para o comentário
Compartilhar em outros sites

  • 0

Grande Allan, matou o problema. É isso mesmo, o interpretador lê o código de cima pra baixo e da esquerda pra direita. Gostei do termo "por gravidade" rsrsrs, eu nunca tinha pensado nessa analogia.

DackAle, se você não quiser colocar seus scripts no corpo do html você pode usar o evento window.onload assim:

window.onload=function(){
//  Todas as funções e operações nessa função.
}

Dessa forma você iguala o evento onload a uma função anônima, dessa forma você pode pegar qualquer elemento pois a função só vai ser executada após o término de carregamento da página.

Akelabrasssssss

Link para o comentário
Compartilhar em outros sites

  • 0
Grande Allan, matou o problema. É isso mesmo, o interpretador lê o código de cima pra baixo e da esquerda pra direita. Gostei do termo "por gravidade" rsrsrs, eu nunca tinha pensado nessa analogia.

DackAle, se você não quiser colocar seus scripts no corpo do html você pode usar o evento window.onload assim:

window.onload=function(){
//  Todas as funções e operações nessa função.
}

Dessa forma você iguala o evento onload a uma função anônima, dessa forma você pode pegar qualquer elemento pois a função só vai ser executada após o término de carregamento da página.

Akelabrasssssss

vleu kaka...q intimo...uehheheuheuh

cara...o termo gravidade se não me engano ouvi falar na universidade...numa aula de C...ehheheh...aluno dedicado...não?

eeuhheuheuhueh

ahh...e não sabia que dava pra fazer desta forma que mandou....carregando as funções após o carregamento completo da página...muito bom também...

floow, abraços!!!!

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,2k
    • Posts
      651,9k
×
×
  • Criar Novo...