[Resolvido] Erro em função usando Ajax e submit
Boa tarde a todos.
Tenho uma função que está enviando dados para dois locais, uma página local e um servidor remoto.
Para a página local, estou usando Ajax e depois mando um submit para o servidor remoto.
Só que por algum motivo, o ajax não está conseguindo enviar os dados, acredito eu que o submit esteja acontecendo muito rápido e anulando a execução do Ajax.
Segue abaixo a função:
function confereNumeros(){
var numeros = document.preparadados.fone;
var tipos = document.preparadados.tipo;
var qtdNumeros = numeros.length;
var alerta = "";
//alert(qtdNumeros);
if(qtdNumeros > 0){
for(var i= 0; i < qtdNumeros; i++){
if(numeros[i].value.length != 10){
alerta += 'O número na posição '+ (i+1) + ' é inválido.\n';
}else if(tipos[i].value == 'fixo' && numeros[i].value.charAt(2) > 5){
alerta += 'O número na posição '+ (i+1) + ' deve ser um número fixo.\n';
}else if(tipos[i].value == 'movel' && numeros[i].value.charAt(2) < 6){
alerta += 'O número na posição '+ (i+1) + ' deve ser um número móvel.\n';
}
}
}else{
if(numeros.value.length != 10){
alerta += 'O número digitado é inválido.\n';
}else if(tipos.value == 'fixo' && numeros.value.charAt(2) > 5){
alerta += 'O número digitado deve ser um número fixo.\n';
}else if(tipos.value == 'movel' && numeros.value.charAt(2) < 6){
alerta += 'O número digitado deve ser um número móvel.\n';
}
}
if(alerta!=''){
alert(alerta);
}else{
document.preparadados.datasiguais.checked = false;
igualaDatas();
//envia os dados via ajax para atualizar o banco local
var objAjax = createXMLHTTP();
var nomeTag = '';
var tipoTag = '';
var valorTag = '';
var valores = '';
//alert(document.preparadados.elements.length);
//roda todos os elementos do form para enviar a pagina de insercaoo
for(var i = 0; i < document.preparadados.elements.length; i++){
tag = document.preparadados.elements[i].tagName.toUpperCase();
tipoTag = document.preparadados.elements[i].type.toUpperCase();
valorTag = document.preparadados.elements[i].value.toUpperCase();
nomeTag = document.preparadados.elements[i].name.toUpperCase();
//alert(tag+' '+tipoTag+' '+nomeTag);
if((tag == 'INPUT' && (tipoTag == 'TEXT' || tipoTag == 'HIDDEN')) || tag == 'SELECT'){
valores += nomeTag +'='+ valorTag+'&';
}
}
alert(valores);
objAjax.open("post", "agenda_acao.asp", true);
objAjax.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
objAjax.onreadystatechange=function(){
if (objAjax.readyState==4){
//alert(objAjax.responseText);
}
}
objAjax.send(valores);
//envia os dados para o servidor de discagem
document.preparadados.action = 'http://189.20.47.73:82/belltelemensagens/envia_mensagens.php';
document.preparadados.submit();
}
}
Se eu desativar o submit, o Ajax funciona, então acredito que se tivesse como dar um intervalo entre uma execução e outra resolveria, mas não encontrei como fazer isso.
Alguém pode me ajudar?
Obrigado desde já.
Discussão (2)
Carregando comentários...