【问题标题】:Javascript append input to formJavascript将输入附加到表单
【发布时间】:2014-08-29 06:09:07
【问题描述】:

我有这个脚本:

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 创建第一个元素,这样我就可以在用户按下 enter 时动态创建一个新字段??

【问题讨论】:

  • 事件需要一个函数,而不是一个字符串。
  • elclanrs 所说的 + 由属性设置的事件处理程序不会反映到属性。
  • @elclanrs 该函数旨在创建一个具有 type="text" name="input_0" palceholder="Notes" onkeydown="tab()" 属性的输入元素,但是当我告诉它时添加未注册的 onkeydown 属性,那么我该如何添加呢??
  • 当您通过 javascript 向元素添加监听器时,结果 html 不会改变 - 曾经使用过 jquery?你会看到的。
  • 下面似乎有一个正确的答案:)。一些关于事件的good reading

标签: javascript forms input onkeypress


【解决方案1】:

你想要的是input.onkeydown = tab;

这是一个fiddle,它显示了它的实际效果。

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

【讨论】:

  • 不幸的是,当我运行该脚本时,整个输入都消失了。
  • 不要从 Fiddle 复制整个内容 - 只是代码行,input.onkeydown = tab;。我需要整个代码来展示它是如何工作的。
  • 问题是如果选项卡的功能尚未创建,则该功能将失败并且元素未创建
  • 是的,抱歉,我假设您已经创建了函数。您需要在声明输入之前创建它。
  • @Jdoonan 如果我的回答对您有帮助,请将其标记为正确的。它有助于我们在 StackOverflow 上的声誉并改善社区。​​span>
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-08-16
  • 2015-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-30
相关资源
最近更新 更多