我有一个从数据库动态创建的表单字段(一系列复选框),因此该字段可能不存在于表单上(如果数据库中没有匹配的值)。我有一些需要根据该字段是否存在执行的代码,如果存在该字段,则提取选择的值。不过,我似乎无法让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

07-22 21:19