2014-08-29 28 views
2

我有这样的脚本:的Javascript追加投入,形成

var countBox = 0; 

function addInput() { 
var breakNode = document.createElement("br"); 

var input = document.createElement("input"); 
input.type = "text"; 
input.name = "input_" + countBox.toString(); 
input.placeholder = "Notes"; 
input.onkeydown = "tab()"; 

var container = document.getElementById('container'); 
container.appendChild(breakNode); 
container.appendChild(input); 

countBox += 1; 
} 

它应该返回

<input type="text" name="input_0" placeholder="Notes" onkeydown="tab()"> 

但它只返回

<input type="text" name="input_0" placeholder="Notes"> 

但input.onkeydown不起作用有没有办法创建第一个元素,最好用Javascript,所以我可以动态创建一个新的字段,当用户按下输入?

+3

该事件需要一个函数,而不是一个字符串。 – elclanrs 2014-08-29 06:10:06

+2

elclanrs所说的+由属性设置的事件处理程序不反映属性。 – Teemu 2014-08-29 06:12:09

+0

@elclanrs函数的目的是创建一个输入元素,其属性类型为“text”name =“input_0”palceholder =“Notes”onkeydown =“tab()”,但是当我告诉它添加onkeydown属性时,它不会'注册,所以我如何添加此? – Jdoonan 2014-08-29 06:13:42

回答

2

你想要的是input.onkeydown = tab;

这是一个fiddle,它显示它正在运行。

在Javascript,Python和许多其他脚本语言中,函数可以作为参数或参数传递。在这里,我们将功能tab()作为onkeydown属性的值。

+0

不幸的是,当我运行该脚本的整个输入消失。 – Jdoonan 2014-08-29 06:18:46

+0

不要从小提琴中复制整个东西 - 只是代码行,'input.onkeydown = tab;'。我需要整个代码来展示它的工作原理。 – Singular1ty 2014-08-29 06:19:35

+1

问题是如果tab的功能没有被创建,那么该功能失败,并且该元素没有被创建 – Jdoonan 2014-08-29 06:23:54