ajax函数无法返回任何输出

时间:2017-04-23 02:02:08

标签: javascript ajax

我正在开发javascript函数,该函数有望像搜索建议一样,验证用户输入并在3种不同情况下返回truefalse,一切正常,期待它& #39;没有返回任何东西。 这是我的代码。

var rawmaterial_search = function (str) {
    if (str.length < 1) {
        return false ;
    } else {
        var xmlhttp = new XMLHttpRequest();
        xmlhttp.onreadystatechange = function () {
            if (this.readyState == 4 && this.status == 200) {
                if (this.responseText == "invalid") {
                    $("#rawmaterial_name").removeClass("caffeine_menu_normal");
                    $("#rawmaterial_name").addClass("caffeine_menu_error");
                } else {
                    $("#rawmaterial_options").empty();
                    $("#rawmaterial_options").append(this.responseText);
                }
            }
        };
        xmlhttp.open("GET", "../admission/rawmaterial_suggest.php?rawmaterial_name=" + str, true);
        xmlhttp.send();
        var rawmaterialReq = new XMLHttpRequest();
        rawmaterialReq.onreadystatechange = function () {
            if (this.readyState == 4 && this.status == 200) {
                if (this.responseText == "notexist") {
                    $("#rawmaterial_name").removeClass("caffeine_menu_normal");
                    $("#rawmaterial_name").addClass("caffeine_menu_error");
                    return false;
                } else if (this.responseText == "exist") {
                    $("#rawmaterial_name").removeClass("caffeine_menu_error");
                    $("#rawmaterial_name").addClass("caffeine_menu_normal");
                    return true ;
                }
            }
        };
        rawmaterialReq.open("GET", "../admission/rawmaterial_exist.php?rawmaterial_name=" + str, true);
        rawmaterialReq.send();
    }
}

使用此功能时效果很好但是一旦我尝试使用返回的输出,如:

if (rawmaterial_search(str)) alert("true"); else alert("false");

总是给我假。 我试图将所有return语句编辑为return true进行测试,但结果是相同的,我猜这意味着我的函数不返回true或{{1 }}, 有任何想法吗 ?

0 个答案:

没有答案