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

Porque Tá Aparecendo Um Erro Na Barra De Status?


Gladisson

Pergunta

O script funciona, mais aparece um erro na barra de status quando eu seleciono um tipo de automóvel, o que pode ser ?

<FORM ACTION='admin.php?editar=automovel' METHOD='post' NAME='form' onsubmit='return valida()' ENCTYPE='multipart/form-data'>

Tipo: <SELECT NAME='tipo' onChange='tipo_marca(this.value)'>

<OPTION VALUE='0'>Selecione

<OPTION VALUE='1'>Carro

</SELECT><BR>

Marca: <SELECT NAME='marca' onChange='marca_modelo(this.value)'>

<OPTION VALUE='0'>Selecione

</SELECT><BR>

Modelo: <SELECT NAME='modelo'>

<OPTION VALUE='0'>Selecione

</SELECT><BR>

</FORM>

<script>

var text_inical = 'Selecione';

var value_inical = '0';

var marca_text = new Array();

var marca_value = new Array();

marca_text['0'] = new Array(text_inical);

marca_value['0'] = new Array(value_inical);

marca_text['1'] = new Array(text_inical,'Volkswagen','Fiat','Chevrolet');

marca_value['1'] = new Array(value_inical,15,18,2);

var modelo_text = new Array();

var modelo_value = new Array();

modelo_text['0'] = new Array(text_inical);

modelo_value['0'] = new Array(value_inical);

modelo_text['15'] = new Array(text_inical,'Parati');

modelo_value['15'] = new Array(value_inical,4);

modelo_text['18'] = new Array(text_inical,'Palio');

modelo_value['18'] = new Array(value_inical,5);

modelo_text['2'] = new Array(text_inical,'Astra');

modelo_value['2'] = new Array(value_inical,6);

function tipo_marca(auto)

{

    document.all.marca.options.length = 0;

    document.all.modelo.options.length = 0;

    for (i=0; i<marca_text[auto].length; i++)

    {

        var opt = new Option(marca_text[auto],marca_value[auto]);

        document.all.marca.options.add(opt);

    }

    var opt = new Option(modelo_text[auto][0],modelo_value[auto][0]);

    document.all.modelo.options.add(opt);

}

function marca_modelo(auto)

{

    document.all.modelo.options.length = 0;

    for (i=0; i<modelo_text[auto].length; i++)

    {

        var opt = new Option(modelo_text[auto],modelo_value[auto]);

        document.all.modelo.options.add(opt);

    }

}

</SCRIPT>

Ficarei grato a quem poder me ajudar. smile.gif

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Bom gladisson a primeira coisa que fiz pra poder testar o teu código no meu mozilla 1.6 (não o firefox) foi trocar todos os document.all por document.form, pois document.all não funciona no mozilla(como você já deve saber). Depois tentei executar e me deu outro erro na hora q tu ia pegar o valor do array, ae fui olhar como você tinha declarado o array e notei algo q talves(não tenho certeza) possa estar errado(acredito q sim).

modelo_text['18'] = new Array(text_inical,'Palio');
Se não me engano fazendo isso, seria o mesmo que fazer isso...
modelo_text['18'][0] = text_inical;
modelo_text['18'][1] = 'Palio';

Pra funcionar no IE eu acredito q não tenha problema, é só você tirar as aspas dos identificadores do array

modelo_text['18']

tenta resolver isso, qualquer coisa posta de novo ae...

Abraço

Crystian

Link para o comentário
Compartilhar em outros sites

  • 0

Acredito que o problema seja esse mesmo que o Crystian apontou, mas vou aproveitar o tópico pra dar uma dica pra quem for trabalhar com arrays em Javascript:

Fujam de criar qualquer array com chaves do tipo string! Bom, não posso falar de ASP porque não sei, mas quem programa com PHP pode "se acostumar mal" pois esta linguagem tem funções excelentes pra se lidar com arrays, além da estrutura "foreach", que permite você percorrer todos os elementos de um array sem saber suas chaves.

No Javascript, nem métodos nativos conseguem encontrar elementos que não tenham chaves numéricas. Vejam um exemplo:

arrayA = new Array();

arrayA[0] = "José";

arrayA[1] = "Severino";

arrayB = new Array();

arrayB['nome'] = "José";

arrayB['sobrenome'] = "Severino";

// Checando os valores

document.write("<br />Array A: " + arrayA.toString());

document.write("<br />Array B: " + arrayB.toString());

Testem este exemplo e verão a furada que pode ser utilizar arrays com chaves do tipo string no Javascript. Não que não se possa utilizar... o problema é que você tem que saber exatamente o valor de todas chaves... e nem sempre esse é o caso.

Bom, recado dado...

Falou!

Link para o comentário
Compartilhar em outros sites

  • 0

Achei o problema!!!!

Quando eu selecionava um tipo ele chama a funçao 'tipo_marca' com o valor selecionado, no caso era '1' o valor e como no array modelo (text e value) não tinha esse valor dava o erro, então coloquei uma condição para abrir somente quando for '0'.

O "all" e "form" eu já tinha visto falar nisso sim, é que eu não estava achando o erro então fui mudando tudo e acabei postando assim.

    if(auto==0)

    {

    var opt = new Option(modelo_text[auto][0],modelo_value[auto][0]);

    document.form.modelo.options.add(opt);

    }

Valeu galera!! cool.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...