这就是我想要的
- 某人在输入字段中输入文本
- 当用户在键盘上按下
ENTER
时,它会使用after()
函数在当前输入字段之后添加一个输入字段,然后它会聚焦该输入字段,以便用户可以继续键入并反复执行此操作
这是我的代码,它不工作:
$('.table-todo input[type=text]').live('keypress', function (e) {
if (e.which == 13)
{
$parent = $(this).parent('.field');
$.get('projects-add-task.php?show_delete=yes', function (data) { $parent.after(data); }, 'html');
$(this).next('input[type=text]').focus();
}
});
以下是projects-add-task.php
的内容:
<div class="field">
<input type="text" name="task[]" />
<a href="#" title="Add Task Below" class="todo-add"><img src="images/icon-todo-add.png" alt="" onmouseover="this.src='images/icon-todo-add-h.png'" onmouseout="this.src='images/icon-todo-add.png'" /></a>
<?php if ($_GET['show_delete'] == 'yes') { ?>
<a href="#" title="Delete This Task" class="todo-delete"><img src="images/icon-todo-delete.png" alt="" onmouseover="this.src='images/icon-todo-delete-h.png'" onmouseout="this.src='images/icon-todo-delete.png'" /></a>
<?php } else { ?>
<img src="images/icon-todo-delete-o.png" alt="" />
<?php } ?>
<div style="clear: both;"></div>
</div>
它只是没有集中通过$.get
添加的输入,我不知道如何修复它。它正在添加下一个输入字段到页面中,但它没有聚焦它。
1条答案
按热度按时间h5qlskok1#
你可以这样做:
问题是,在执行
$(this).next('input[type=text]').focus();
时,实际上并没有创建下一个输入元素,因为您正在使用 AJAX 调用来创建它。你还需要父元素的下一个元素。