在javascript中验证多个ajax调用成功完成

时间:2014-10-31 12:38:39

标签: javascript ajax

在我的应用程序中,我正在进行两次ajax调用,以便根据另一个变量值从数据库中获取一些数据。 代码部分:

var xmlHttp;
var redirect;

function populate_site(obj, passedselect) {
    xmlHttp = GetXmlHttpObject();

    var site_type;

    if (obj.value) {
        site_type = obj.value
    }else {
        site_type = document.app.site_type.value;
    }

    var url="/cgi-bin/Web/Begin.cgi";
    url=url+"?redirect=Get_Site_List";
    url=url+"&site_type=" + site_type;

    xmlHttp.onreadystatechange=stateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);    
}

function stateChanged() {     
    if (xmlHttp.readyState == 4){ 
        document.getElementById('site_id').innerHTML = xmlHttp.responseText;
    }
}

function Populate_Process_List(obj, process_id_param) {    
    var action_id;

    if (obj.value) {
        action_id = obj.value
    }else {
        action_id = document.app.action_id.value;
    }

    xmlHttp = GetXmlHttpObject();

    if (obj.value == '') {
        document.getElementById('process_id').innerHTML = ' ';
        return false;
    }

    var url="/cgi-bin/Web/Begin.cgi";
    url=url+"?redirect=Fetch_User_Process_List";
    url=url+"&action_id=" + action_id;
    url=url+"&process_id=" + process_id_param;
    url=url+"&gp_flag=" + 'YES';                                         
    xmlHttp.onreadystatechange= Process_Data_StateChanged;
    xmlHttp.open("GET",url,true);
    xmlHttp.send(null);        
}

function Process_Data_StateChanged() {
    if(xmlHttp.responseText != 'NA') {
        if (xmlHttp.readyState == 4){
            document.getElementById('process_id').innerHTML = xmlHttp.responseText;
        }
    }
}

function GetXmlHttpObject(){
    var xmlHttp1=null;
    try
    {
        // Firefox, Opera 8.0+, Safari
        xmlHttp1=new XMLHttpRequest();
    }
    catch (e)
    {
        // Internet Explorer
        try
        {
            xmlHttp1=new ActiveXObject("Msxml2.XMLHTTP");
        }
        catch (e)
        {
            xmlHttp1=new ActiveXObject("Microsoft.XMLHTTP");
        }
    }
    return xmlHttp1;
}

使用JavaScript验证site_idprocess_id变量。

面临的问题是用户在ajax调用加载未完成之前按下提交按钮(因为我将open()方法的async参数传递为true)。即使使用JavaScript验证site_idprocess_id变量也未被捕获。

验证码:

var siteaddindex = document.app.site_id[document.app.site_id.selectedIndex].value;

if(siteaddindex == "null"){
    alert("Please select site location.");
    document.app.site_id.focus();
    return false;
}

var process_id = document.app.process_id.value;

if (process_id == '') {
    alert("Please select process");
    return false;
}

请告诉我如何执行上述字段的验证,因为这些字段是必填字段。

0 个答案:

没有答案