【发布时间】:2014-09-25 22:10:14
【问题描述】:
我正在构建一个 ToDO 样式列表。我的目标是每次最后一行/底行的名称文本输入字段获得焦点时插入一个新行。
因此,单击底部输入字段将在其下方插入一个新行,然后我可以完成输入我的姓名并点击选项卡以继续下一个,然后再次在其下方添加一个新行。
我的姓名输入文件如下所示...
<input class="name" name="name_1" id="name_1" size=45 type="text" value="" onfocus="myFunction(event)">
如您所见,现在,当文本输入获得焦点 onfocus="myFunction(event)" 时,它会调用此文本函数 myFunction(event)
function myFunction(e){
add_task_row("","{$ID}","","","","","","","0");
return false;
}
我的add_task_row 处理插入新行。
它目前有效,只要我点击或进入文本输入,它就会添加一个新行。问题是它发生在任何一行,我需要它只在最后一行被关注时才以这种方式运行。
我认为在myFunction() 内部可能有一些代码可以计算行数,然后只有fire the add_task_row 如果它是当前的最后一行?我只是不知道足够的 JavaScript 自己来做这件事,甚至不知道我是否走在正确的轨道上来做这件事?
感谢任何帮助,您可以看到我想要的输出/结果。希望尽可能多地使用原生 JavaScript
【问题讨论】:
-
考虑仅在原始 HTML 的最后一行编码“onfocus”。然后,每次添加一行时,您都可以调用
removeFocus(this)例程,这样只有新添加的最后一行才有onfocus属性。 -
你在使用 jQuery 吗?使用最后一个选择器很容易查看您所在的行:
$('#yourtableid tr:last')如果没有,您需要做一些迭代 ala stackoverflow.com/a/9718646/1981678
标签: javascript