按名称访问元素时未定义的值

undefined value when accessing an element by its name

本文关键字:未定义 元素 访问      更新时间:2024-05-08

在下面的函数中,我尝试验证用户是否选择了适当的选择值。当我运行脚本时,警报弹出框显示"未定义"。我需要使用元素的名称而不是ID来获取元素。

Sort table in =
<select name="SortIn">
<option value="Please Choose">Please Choose</option>
<option value="asc">Ascending order</option>
<option value="desc">Descending order</option>
</select>
<input type="submit" name="submit" value="Submit" onclick="return validateForm()"/>
</form>
<script type="text/javascript">
/* <![CDATA [ */
function validateForm()
{
    //Validates that form elements are not empty
            var test = document.getElementsByName('SortIn').value;
    alert(test1);
    if(test1 == null || test == "")
    {
        alert("Please select sorting order");
        return false;
    }
    else
        {
            return true;
        }
}
/* ]]> */
</script>

document.getElementsByName('SortIn')返回节点列表。您需要获得节点列表的第一个元素,如下所示:

var test = document.getElementsByName('SortIn')[0].value;

您需要引用这样的元素:

var test1 = document.getElementsByName('SortIn')[0].value;
                                                 ^

jsFiddle示例

getElementsByName返回一个类似数组的元素集合,因此需要指定所需元素的索引。