如何通过javascript / jquery在新生成的文本框上自动对焦

时间:2015-03-08 09:04:47

标签: javascript php jquery html

我在php程序中点击的按钮上生成一个新文本框 HTML代码写为

<table id="additional_item_numbers">
<thead>
<tr>
<th>Item</th>
<th>&nbsp;Delete</th>
</tr>
</thead>

<tbody>
<tr><td><input type="text" class="form-control form-inps" size="50" name="additional_item_numbers[]" value="123" /></td><td>
<a class="delete_item_number" href="javascript:void(0);">Delete</a>
</td><tr>
</tbody>
</table>

我正在使用此代码生成新的文本框

<script type="text/javascript" language="javascript">
$("#additional_item_numbers").keyup(function(event){
    if(event.keyCode == 13){
        $("#additional_item_numbers tbody").append('<tr><td><input type="text" class="form-control form-inps" size="40" name="additional_item_numbers[]" value="" autofocus /></td><td>&nbsp;</td></tr>');
    }
});
</script>

这会在需要的确切位置成功生成一个新输入框,但不会自动聚焦新生成的输入文本框。 我想自动聚焦新生成的文本框。 关键字autofocus也不起作用,因为我已经测试过了。

非常感谢任何帮助。

修改 提交表单后,将通过以下代码在表单上调用函数

if ($this->input->post('additional_item_numbers') && is_array($this->input->post('additional_item_numbers')))
                {
                    $this->Additional_item_numbers->save($item_id, $this->input->post('additional_item_numbers'));
                }
                else
                {
                    $this->Additional_item_numbers->delete($item_id);
                }

被叫函数是名为class的{​​{1}}的一部分,定义为

Additional_item_numbers

但是只有当值在3到5之间或高达10时才会在数据库中添加值... 如果我们添加超过10个额外的项目编号。它不会添加所有值,或者有时会添加其中的一些值。 昨天,我们提交了150个值,但只将其中的5个添加到数据库中。

3 个答案:

答案 0 :(得分:1)

尝试以下代码。

$("#additional_item_numbers").find("input[type='text']").last().focus();

答案 1 :(得分:0)

在追加html后尝试以下行

$("#additional_item_numbers").find("input.form-inps").focus();

答案 2 :(得分:0)

$.(document ).ready(function (){
    $('#textbox_id').focus();
});