这应该很简单,但...... 我正在通过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始终显示在选项列表中。我已经搜索了几天,但没有发现任何有用的东西......我尝试了很多不同的陷阱(类型等等),但没有任何作用。
答案 0 :(得分: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
是否“真实”,注意null
,undefined
和空字符串都是“假的”。
如果由于某种原因可能会返回实际的字符串"null"
,那么就这样做:
if(desLead && desLead != "null")