2

在下面的代码中,我得到一个错误

无法读取未定义的属性“区域排序”

当我拨打电话时

document.SortingForm.AreaSorted.value = Names.join("\n");

我已经看过代码一百次了,我不明白为什么会这样。我真的很感激这方面的任何帮助。

排序.html

<!doctype html>
<html>
<title>Sort</title>
<head>
    <script type="text/javascript" src="sort.js">
    </script>
</head>
<body>
<h1>Sorting String Arrays</h1>
<p>Enter two or more names in the field below,
and the sorted list of names will appear in the
text area.</p>
<form name=”SortingForm”&gt;
Name:
<input type="text" name="FieldWord" size="20" />
<input type="button" name="ButtonAddWord" value="Add" onClick="SortNames();" />
<br/>
<h2>Sorted Names</h2>
<textarea name=”AreaSorted” cols=”60” rows=”10” >
The sorted names will appear here.
</textarea>
</form>

</body>
</html>

排序.js

var Names = new Array();

function SortNames()
{
    Name = document.getElementsByName("FieldWord")[0].value;
    Names.push(Name);
    Names.sort();
    document.SortingForm.AreaSorted.value = Names.join("\n");
}
4

4 回答 4

2
于 2012-05-01T10:36:57.100 回答
0

AreaSorted 不是 id .. 所以要么使用

document.getElementByName('AreaSorted')[0]

或者

.. 给你的元素一个 id 和 use document.getElementById,我会推荐。

于 2012-05-01T10:33:03.510 回答
0

我不知道该语法的来源,但显然它不起作用(不再起作用)。要按名称获取对表单的引用,您应该使用document.forms.

document.forms.SortingForm.elements.AreaSorted.value = names.join("\n");

但推荐的方法是将 分配id给输入,然后使用document.getElementById.

于 2012-05-01T10:49:30.170 回答
0

为什么不尝试向 textarea 添加一个 id 并使用:

document.getElementById('AreaSorted');

无论形式如何,这都应该始终有效。

此外,表单名称前后的引号似乎已关闭,请尝试重新输入它们。

于 2012-05-01T10:29:35.120 回答