我正在 php 程序中单击的按钮上生成一个新的文本框 HTML代码写为
<table id="additional_item_numbers">
<thead>
<tr>
<th>Item</th>
<th> 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> </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
的一部分,名为Additional_item_numbers
,定义为
function save($item_id, $additional_item_numbers)
{
$this->db->trans_start();
$this->db->delete('additional_item_numbers', array('item_id' => $item_id));
foreach($additional_item_numbers as $item_number)
{
if ($item_number!='')
{
$this->db->insert('additional_item_numbers', array('item_id' => $item_id, 'item_number' => $item_number));
}
}
$this->db->trans_complete();
return TRUE;
}
但仅当值在 3 到 5 或最多 10 范围内时,它才会将值添加到数据库中... 如果我们添加超过 10 个附加项目编号。它不会添加所有值或有时会添加其中一些值。 昨天,我们提交了 150 个值,但它只将其中的 5 个添加到数据库中。
最佳答案
尝试下面的代码。
$("#additional_item_numbers").find("input[type='text']").last().focus();
关于javascript - 如何通过 javascript/jquery 自动聚焦新生成的文本框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28924780/