到达ajax代码时,Javascript测试不会继续

时间:2011-07-08 13:46:24

标签: javascript ajax

在我的表单按钮的onClick属性中,调用了一个javascript函数。在这个函数中,测试是否填充了字段。当文本字段填充了值时,还调用Ajax函数,以测试该值是否已存在于Mysql数据库中。我的问题是,当到达ajax函数时,其余的javascript测试都没有执行,尽管还有一些字段没有填写。那么如何执行剩余的测试呢?

这是我的代码:

<input type="button" name="btn_Valider" id="btn_Valider" value="Valider" class="bouton2" onClick="testerDonneesForm();"/>

function testerDonneesForm(){
        if (document.frm_Produit.prod_code.value == "") {
            alert( "Le champ ''Code produit'' ne doit pas être vide!");
            document.frm_Produit.prod_code.focus;
            return false;
        }
        else if (document.frm_Produit.prod_code.value != "") {
            ajaxRechercherCodeProduit();
        }
        else if (document.frm_Produit.type_prod_code.value == "") {
            alert( "Le champ ''Type code produit'' ne doit pas être vide!");
            document.frm_Produit.prosp_cin.focus;
            return false;
        }
        else {
            document.getElementById("frm_Produit").submit() ;
        }
    }

function trim (myString)
{
    return myString.replace(/^\s+/g,'').replace(/\s+$/g,'');
} 

function ajaxRechercherCodeProduit() {


    var g_XhrObject = get_Xhr() ;
    var prod_code = document.getElementById('prod_code').value;
    var url = '<?php echo HTTP_AJAX ?>Produit/ajaxVerifieCodeProduit.php?prod_code='+prod_code;


    if (g_XhrObject) {
        g_XhrObject.onreadystatechange = function()
        {
            if (g_XhrObject.readyState == 4 && g_XhrObject.status == 200) {

                if (trim(g_XhrObject.responseText) != "0")
                {
                    alert(g_XhrObject.responseText);
                    return false;
                }
            }
        }

        g_XhrObject.open("POST", url, true) ;
        g_XhrObject.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded') ; 
        g_XhrObject.send(null);
    }
}

1 个答案:

答案 0 :(得分:1)

您希望测试是单个if语句,而不是单个else if语句的if部分。使用if-else if-else语句,只要发现其中一个条件为真,或者执行了else条件(以上条件都不为真),执行就会移过if结构的末尾。< / p>