我有一个从数据库动态创建的表单字段(一系列复选框),因此该字段可能不存在于表单上(如果数据库中没有匹配的值)。我有一些需要根据该字段是否存在执行的代码,如果存在该字段,则提取选择的值。不过,我似乎无法让javascript确认此字段存在。这是我尝试过的:
function displayAction(){
var f = document.adminForm;
var a = f.action;
if(f.prefix.value!="-") {
a = a + '&task=callExclusionDisplay&prefix=' + f.prefix.value;
}
else {
var exclusions = document.getElementById("exclusions");
if (exclusions != null){
alert("exclusions set");
a = a + '&task=callExclusionCreate&prefix=' + f.prefix.value + '&exclusions=' + exclusions.join();
}
}
alert('after if, action is ' + a);
}
该代码从不通过if语句来检查排除项是否不为null,即使当我查看页面时,也有许多名为“exclusions”的复选框(id也设置为“exclusions”)。 != null是否有问题,因为它是一组复选框,而不是单个表单元素?我该如何工作?如果我跳过测试是否为空,那么如果数据库未返回任何匹配值,则代码将引发有关未定义排除的错误。
最佳答案
您正在使用document.getElementById
,但是表单元素具有名称。
尝试使用f.elements.namedItem("exclusions")
而不是exclusions != null