Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

jean377

Ajax no Firefox (resolvido).

Recommended Posts

Olá pessoal.

 

Depois de ler o artigo Ajax e PHP - Carregando dados sem refresh,

do colunista Júlio César Martini, uma coisa me tirou o sono. O código

funcionava no IE, mas não no Firefox. O método add() não funcionava.

 

Depois de horas de pesquisa na internet e em livros em vão,

palavras de baixo calão contra meu querido Firefox percebi que

o erro era o mais banal que se poderia imaginar.

 

Por costume, quando nas tags <form> e <input>, ao invés do atributo "ID",

usamos o "NAME". E é aí que está o problema:

 

Quando no Javascript usamos "getElementById()", o IE procura pela "ID", e se

não encontrar, pelo "NAME". Já o Firefox procura o elemento somente pela "ID".

 

Ou seja, pra rodar no FF é só colocar uma "ID" nos campos select e option.

 

 

Fiz um exemplo (Não é ajax, mas o princípio é o mesmo).

 

CODE
<html>

<head>

 

<script type="text/javascript">

function criar_opcao(){

var novo=document.createElement('option');

novo.text='Fusca';

novo.value='1';

var c_select=document.getElementById("c_select");

 

try{

c_select.add(novo,null);

}

catch(ex){

c_select.add(novo);

}

 

}

</script>

 

</head>

<body>

 

<form>

<select id="c_select">

<option>Corsa</option>

<option>Palio</option>

<option>Celta</option>

<option>Fox</option>

</select>

<input type="button" onClick="criar_opcao()" value="Criar opção" />

</form>

 

</body>

</html>

 

O artigo já é antigo, mas como não achei citação sobre este erro na internet, resolvi postar.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Claro... É isso que uso no Ajax, e foi o que usei no exemplo.

 

O grande problema é:

 

Se você só colocar o atributo NAME no campo do FORM, e

depois no JS usar o método getElementById() pra direcionar

o script, o Firefox não encontrará o campo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.