【发布时间】:2016-07-13 16:32:49
【问题描述】:
我正在处理一个表单并尝试创建一个执行以下操作的onkeydown 函数:
- 仅在按下 tab 键 时触发(正常工作)
- 插入一个新元素 (
input)(正常工作) - 然后插入的
input调用相同的onkeydown函数(卡在这里!)
尝试过 Increment ++ 但不起作用?
这就是我的目标:
<html>
<head>
</head>
<body>
<form>
<input type ="text" OnKeydown = "tab(event)" />
<div id ="insert">
</div>
</form>
</body>
<script>
function tab(event) {
if (event.keyCode == 9) {
var ins = '<input type ="text" OnKeydown = "tab(event)"/>';
document.getElementById("insert").innerHTML=ins;
ins++;
}
};
</script>
</html>
【问题讨论】:
-
不要使用事件 HTML 属性。在 JS 中使用事件监听器。使用事件委托。如果我刚刚输入的任何内容听起来不熟悉,请考虑使用 jQuery。
-
ins++无效,因为您可以向 HTML 对象添加数字。 --- 至于例子,我建议使用我列出的术语使用谷歌。 --- 阅读是你最好的朋友。 -
简单示例:在
form元素上使用addEventListener。收听keydown事件。检查event.target是否是text类型的input。如果是这样,请调用一个复制input元素的函数。 -
@user3464091 每次按下
tab键时,您是否都在寻找append新 输入? EG:首先聚焦input,按下tab键,新的input被创建并聚焦,再次按下tab键,新的input被创建并聚焦,等等等等。我做了一个@987654321 @模拟这个过程。 -
是的,我想最终创建一个行,最后一个
input调用相同的function添加一个新行/输入...
标签: javascript html function increment keycode