我正在开发javascript
函数,该函数有望像搜索建议一样,验证用户输入并在3种不同情况下返回true
或false
,一切正常,期待它& #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 }}, 有任何想法吗 ?