0

这应该很简单,但是...我正在通过 JavaScript 使用来自 MS Access db 的值填充一些选择框。所以...我遍历记录并检索名称。其中一些是有效的,一些是空的,还有一些是空的(无论出于何种原因)。我想捕获空值和空值,这样它们就不会出现在选择选项中。这是我所拥有的:

var SQL = "SELECT DISTINCT design_lead FROM projects";
rs.Open(SQL, cn);
    if(!rs.bof) {
        rs.MoveFirst();
    }
var i=0;
while(!rs.eof) {
    desLead = rs("design_lead");
    if(desLead==null || desLead==undefined || desLead=='') {
        i=i+1;
        rs.MoveNext();
    }
    else {
        $("#leadName").append("<option>"+desLead+"</option>")
        i=i+1;
        rs.MoveNext();
    }
}
rs.Close();

问题是 null 总是出现在选项列表中。我已经搜索了几天,但没有找到任何有用的东西......我尝试了许多不同的陷阱(typeof 等),但没有任何效果。

4

1 回答 1

1

首先不返回空值怎么样:

var SQL = "SELECT DISTINCT design_lead FROM projects WHERE design_lead IS NOT NULL";

此外,您可以将 while 循环缩小一点,因为在 if 和 else 情况下只有一行不同:

while(!rs.eof) {
    desLead = rs("design_lead");
    if(desLead) {
        $("#leadName").append("<option>"+desLead+"</option>")
    }
    i=i+1;
    rs.MoveNext();
}

通过说if(desLead)您正在测试是否desLead是“真实的”,请注意nullundefined空字符串都是“虚假的”。

"null"如果由于某种原因可能会返回实际字符​​串,那么只需执行以下操作:

if(desLead && desLead != "null")
于 2012-08-15T12:10:47.313 回答