Gladisson Postado Fevereiro 17, 2005 Denunciar Share Postado Fevereiro 17, 2005 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. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Crystian Postado Fevereiro 17, 2005 Denunciar Share Postado Fevereiro 17, 2005 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 arraymodelo_text['18']tenta resolver isso, qualquer coisa posta de novo ae...AbraçoCrystian Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Illidan Postado Fevereiro 17, 2005 Denunciar Share Postado Fevereiro 17, 2005 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 valoresdocument.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! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Gladisson Postado Fevereiro 17, 2005 Autor Denunciar Share Postado Fevereiro 17, 2005 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!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Gladisson
O script funciona, mais aparece um erro na barra de status quando eu seleciono um tipo de automóvel, o que pode ser ?
Ficarei grato a quem poder me ajudar.
Link para o comentário
Compartilhar em outros sites
3 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.