Já que me tornei um estudante de JavaScript, tenho postado constantemente para resolver algumas dúvidas do que estou aprendendo e por isso estou voltando a postar hoje.
O programa é bem simples(espero que o problema também seja :blush: ). Tenho uma página em html que contém apenas uma tag select de estados do Brasil e que, quando clico em um deles é mostrado para mim um valor de moeda logo à direita. O meu problema é que a função funciona normalmente no Intenet Explorer, mas quando eu executo a página no Firefox, tenho sempre de apertar depois a tecla TAB, para aí sim serem mostrados os valores referentes a cada estado. Mesmo eu clicando nos nomes dos estados, não rola, só depois de pressionar TAB.
Tenho 2 arquivos em javascript, 1 em html e 1 em php. Imagino que a função responsável para buscar o valor(value) do campo select do html esteja no arquivo exemplo9.js, linha 3, que se não me engano deve ser a função getElementById.
O que fazer para que o Firefox redirecione o seu foco para dentro do select logo na primeira execução da página?
window.onblur = function()
{
var estado = document.getElementById("estado");
estado.onchange = function()
{
exibeFrete(estado);
}
}
function exibeFrete(estado)
{
if(estado == null)
{
return;
}
selecionado = estado.options[estado.selectedIndex].value;
var url="exemplo9.php?estado="+encodeURIComponent(selecionado);
requisicaoHTTP("GET",url,true);
}
function trataDados()
{
var info = ajax.responseText; // obtém a resposta como string
var resposta = document.getElementById("frete");
resposta.innerHTML = info;
}
bibliotecaAjax.js
var ajax;
var dadosUsuario;
//------------- cria o objeto e faz a requisição ------------
function requisicaoHTTP(tipo,url,assinc)
{
if(window.XMLHttpRequest)
{
ajax = new XMLHttpRequest(); // Mozilla, Safari,...
}
else
if(window.ActiveXObject) //IE
{
ajax = new ActiveXObject("Msxml2.XMLHTTP");
if(!ajax)
{
ajax = new ActiveXObject("Microsoft.XMLHTTP");
}
}
if(ajax) // iniciou com sucesso
{
iniciaRequisicao(tipo,url,assinc);
}
else
{
alert("Seu navegador não pussui suporte a essa aplicação!");
}
}
//------------- Inicializa o objeto criado e envia os dados (se existirem) -----
function iniciaRequisicao(tipo,url,bool)
{
ajax.onreadystatechange = trataResposta;
ajax.open(tipo,url,bool);
if(window.XMLHttpRequest)
{
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
ajax.overrideMimeType("text/XML"); /* usado somente no Mozilla */
}
else
{
ajax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
}
ajax.send(dadosUsuario);
}
// ------------ Inicia requisição com envio de dados -------------
function enviaDados(url)
{
criaQueryString();
requisicaoHTTP("POST",url,true);
}
// ------------ Cria a string a ser enviada, formato campo1 = valor1&campo2=valor2... -------
function criaQueryString()
{
dadosUsuario="";
var frm = document.forms[0];
var numElementos = frm.elements.length;
for(var i = 0; i < numElementos; i++)
{
if(i < numElementos-1)
{
dadosUsuario += frm.elements[i].name+"=" + encodeURIComponent(frm.elements[i].value)+"&";
}
else
{
dadosUsuario += frm.elements[i].name+"=" + encodeURIComponent(frm.elements[i].value);
}
}
}
// ------------ Trata a resposta do servidor ---------------
function trataResposta()
{
if(ajax.readyState == 4)
{
if(ajax.status == 200)
{
trataDados(); // criar essa função no seu programa
}
else
{
alert("Problema na comunicação com o objeto XMLHttpRequest");
}
}
}
Pergunta
Paulada
OLa a todos!
Boa tarde
Já que me tornei um estudante de JavaScript, tenho postado constantemente para resolver algumas dúvidas do que estou aprendendo e por isso estou voltando a postar hoje.
O programa é bem simples(espero que o problema também seja :blush: ). Tenho uma página em html que contém apenas uma tag select de estados do Brasil e que, quando clico em um deles é mostrado para mim um valor de moeda logo à direita. O meu problema é que a função funciona normalmente no Intenet Explorer, mas quando eu executo a página no Firefox, tenho sempre de apertar depois a tecla TAB, para aí sim serem mostrados os valores referentes a cada estado. Mesmo eu clicando nos nomes dos estados, não rola, só depois de pressionar TAB.
Tenho 2 arquivos em javascript, 1 em html e 1 em php. Imagino que a função responsável para buscar o valor(value) do campo select do html esteja no arquivo exemplo9.js, linha 3, que se não me engano deve ser a função getElementById.
O que fazer para que o Firefox redirecione o seu foco para dentro do select logo na primeira execução da página?
exemplo9.html
exemplo9.js bibliotecaAjax.js exemplo9.php:blink:
Editado por PauladaLink para o comentário
Compartilhar em outros sites
2 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.