如何将新创建的字段集中在HTML表单中?

时间:2016-08-21 08:15:06

标签: jquery html focus input-field

当用户点击链接时,我想动态地将输入字段添加到html表单。新创建的字段应该获得键盘焦点。

How to Set Focus on Input Field using JQuery的答案对我不起作用(StackOverflow上也没有)。新创建的字段不会获得键盘焦点。在Firefox 43.0.1和Chromium 18中测试过。当我输入时,Firefox开始查找文本(如 CTRL + F ),Chromium什么都不做。我尝试了本地文件和网络服务器中的代码,以及各种版本的jQuery。

function addfield() {
  n = $('table#t1 tr').length;
  $('table#t1').append('<tr><td><input name=field'+n+' ></td><td><input name=value'+n+'></td></tr>');
  $('input[name="field"'+n+']').focus();
}
a { background: tan; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
<table id=t1>
  <thead>
    <tr>
      <th>field</th>
      <th>value</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Bill</td>
      <td>bill@yahoo.com</td>
    </tr>
  </tbody>
</table>
<div><a onclick='addfield();return false;'>Add field</a></div>

1 个答案:

答案 0 :(得分:4)

您的jQuery选择器中的name属性似乎存在问题,该选择器应该关注新添加的字段。选择器的"部分放错了位置。

您当前的代码是

$('input[name="field"'+n+']').focus();

应该是:

$('input[name="field'+n+'"]').focus();

您可以查看此JSFiddle以查找an example