当最下面一行使用JavaScript获得焦点时,插入一行新的输入字段

当最下面一行使用JavaScript获得焦点时,插入一行新的输入字段,javascript,Javascript,我正在建立一个待办事项列表。我的目标是每次最后一行/最下面一行的名称文本输入字段获得焦点时插入一个新行 因此,单击底部的输入字段将在其下方插入一个新行,然后我可以完成键入我的姓名并点击tab继续下一个,然后再在其下方添加一个新行 我的名字输入文件如下所示 <input class="name" name="name_1" id="name_1" size=45 type="text" value="" onfocus="myFunction(event)"> 我的add_task

我正在建立一个待办事项列表。我的目标是每次最后一行/最下面一行的名称文本输入字段获得焦点时插入一个新行

因此,单击底部的输入字段将在其下方插入一个新行,然后我可以完成键入我的姓名并点击tab继续下一个,然后再在其下方添加一个新行

我的名字输入文件如下所示

<input class="name" name="name_1" id="name_1" size=45 type="text" value="" onfocus="myFunction(event)">
我的
add_task_row
处理插入新行的操作

它目前可以工作,只要我在文本输入中单击或制表符,它就会添加一个新行。问题是它发生在任何一行上,我需要它只在最后一行被关注时以这种方式运行

我认为在
myFunction()
中可能有一些代码可以计算行数,然后只有
触发add\u task\u行
,如果它是当前的最后一行?我只是不知道足够多的JavaScript来自己做这件事,甚至不知道我是否在正确的轨道上做这件事

感谢您的帮助,您可以看到我想要的输出/结果。希望尽可能多地使用本机JavaScript,因此应该可以:

$(document).ready(function(){
    $('#table1').on('click','tr:last',function(){
        alert("!");
        $('#table1 tbody:last').append("\n<tr><td>Test</td></tr>");
    });
});
$(文档).ready(函数(){
$('#表1')。在('click','tr:last',function()上{
警惕(“!”);
$(“#表1 t正文:最后一个”)。追加(“\n测试”);
});
});
以及脚本的表:

<table id="table1">
<tr><td>Test1</td></tr>
<tr><td>Test2</td></tr>
</table>

测试1
测试2
因此,单击“Test2”将生成一个包含内容“Test”的新行

(我希望您使用的是jQuery,因为它更简单。如果不在这里,请尝试一下。)


问候

事实证明,只使用本机JavaScript很容易;仅在初始HTML的最后一行编码
onfocus
属性,并执行以下操作:

将警报替换为生成新行的函数(具有
onfocus
属性)。在任何给定时刻,只有最后一行(无论是原始行还是插入行)具有
onfocus
属性


编辑:或者可以调用
this.removeAttribute
,然后再调用以生成新行;这样,将有几微秒的时间段,其中没有输入元素在焦点上有
,而不是两行有这样一个属性的时间段。这是一件小事,但我更担心。

考虑只在原始HTML的最后一行编码“onfocus”。然后,每次添加一行时,都可以调用
removeFocus(this)
例程,以便只有新添加的最后一行具有
onfocus
属性。是否使用jQuery?很容易使用最后一个选择器查看您所在的行:
$(“#yourtableid tr:last”)
如果没有,您需要进行一些迭代,因为我更喜欢原生JS作为整个ap;到目前为止,应用程序还没有jQuery。此外,我的行代码更复杂,是div而不是表,现有的bg内容无法更改
<table id="table1">
<tr><td>Test1</td></tr>
<tr><td>Test2</td></tr>
</table>