如何将文本添加或更改到<;部门>;来自javascript的元素

如何将文本添加或更改到<;部门>;来自javascript的元素,javascript,html,input,Javascript,Html,Input,我正在尝试创建一个程序,它接受您输入的任何文本,并(目前)在元素中显示它 以下是我的代码: HTML: J.A.I。 Javascript: //takes input from <input type=text> function takeInput() { var question = this.value; displayOutput(question, output); } //displays output //@param messag

我正在尝试创建一个程序,它接受您输入的任何文本,并(目前)在元素中显示它

以下是我的代码:
HTML:


J.A.I。
Javascript:

 //takes input from <input type=text>
 function takeInput() {
     var question = this.value;
     displayOutput(question, output);
 }

 //displays output
 //@param message string Message to be displayed
 //@param destination HTML element where the message is to be displayed
 function displayOutput(message, destination) {
     destination.innerHTML = message;
 }

 //init code

 var input = document.getElementById("text");

 var output = document.getElementById("dialogue");

 input.onkeydown = takeInput();
//从
函数takeInput(){
var问题=此值;
显示输出(问题、输出);
}
//显示输出
//@要显示的参数消息字符串消息
//@要在其中显示消息的param destination HTML元素
功能显示输出(消息、目标){
destination.innerHTML=消息;
}
//初始化代码
var输入=document.getElementById(“文本”);
var输出=document.getElementById(“对话”);
input.onkeydown=takeInput();
我正在使用firefox 31.4.0,收到的错误是:

TypeError:目标为空

我做错了什么?

您需要将函数分配给事件:

input.onkeydown = takeInput;

您立即调用了该函数。

我认为这是因为您使用“text”作为id名称,并且它是保留的。不要将它用作ID。另外,我选择在HTML中绑定函数。因此,将其更改为:

<input id="txtField" type='text' onkeyup="takeInput()"></input>
下面是一个正在工作的JSFIDLE:

注意,在我的JSFIDLE中,我移动了一些代码。我发现在函数中收集所有内容更为干净,而不是将这些全局变量挂起:)

希望能有帮助。 /JBJ

*编辑* 看来“text”毕竟不是一个保留词:-)那么这个问题可能与事件绑定有关(我回答的第二部分)。下面是一个新的JSFIDLE,它使用“text”作为id:

删除等号前的空格<代码>非
如果您的问题已经得到回答,请记住接受答案,如果没有,请用更多信息更新答案。
<input id="txtField" type='text' onkeyup="takeInput()"></input>
var input = document.getElementById("txtField");