1

我知道这是一个非常基本的问题,但我对(非 HTML)编程非常陌生,并且在学习了 CodeAcademy 上的大部分 JS 曲目之后,我仍然在努力让我学到的任何东西真正发挥作用。

所以我决定设计一个简单的基于 JavaScript 的命令行作为对自己的挑战。当然,我写的第一个实际代码拒绝工作,尽管不断摆弄。

这是HTML(好吧,相关位):

<input type="text" id="commandfield"></input>
<button type="button" onclick="enterCommand()">Enter</button>

这是Javascript:

var field = document.getElementById("commandfield");

function enterCommand () {
    var input = field.value;
    alert(input);
}

...并且没有警报显示。我测试了一个纯字符串警报,它运行良好,所以我知道问题出在#commandfield 的获取值上。我究竟做错了什么?

4

3 回答 3

4

选择函数内的元素:

function enterCommand () {
    var field = document.getElementById("commandfield");
    if (field) {
        var input = field.value;
        alert(input);
    }
}

这将选择在事件发生时给定 DOM 状态的元素。

于 2012-12-03T01:38:43.157 回答
1
function enterCommand () {
    var field = document.getElementById("commandfield");      
    var input = field.value;
    alert(input);
}

试试这个,我想你把脚本放在 head 标签中,而不是 body 标签的底部。

所以无法获取该节点

于 2012-12-03T03:12:28.630 回答
0

我试过了,这行得通:

<script type="text/javascript">
function enterCommand () {
var field = document.getElementById("commandfield");
var input = field.value;
window.alert(input);
}
</script>
<input type="text" name="commandfield" id="commandfield">
<button type="button" onclick="enterCommand()">Enter</button>
于 2012-12-03T01:41:05.840 回答