首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery -按enter键添加并聚焦下一个表单字段

问JQuery -按enter键添加并聚焦下一个表单字段
EN

Stack Overflow用户
提问于 2021-06-01 17:27:06
回答 1查看 94关注 0票数 0

我试图通过按enter来添加新的输入字段。现在,当我按Enter键时,会添加一个新字段,但是焦点将直接转移到Submit按钮,而不是新添加的字段。我怎么才能阻止这一切?

此外,我如何增加一种“预防”,使一个新的领域不能添加,除非已经写入到当前的领域?

下面是它当前的工作方式:JsFiddle

编辑我还想出了如何防止添加下一个字段,如果当前字段是空的:JsFiddle

​

代码语言:javascript
复制
$(document).ready(function() {

  $("#items").keypress(function(e) {
    if (e.which === 13) {
      e.preventDefault();
      $('#items').append('<div><input id="sub" type="text" name="subtask">' +
        '<input type="button" value="delete" id="delete" /></div>');
      $(this).next().focus();
    }
  });


  $("body").on('click', "#delete", function(e) {
    $(this).parent('div').remove();
  })

});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<form action="">
  <div id="items">
    <input id="sub" type="text" name="subtask">
  </div>
  <input type="submit" value="submit">
</form>

​

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-01 18:03:55

  1. 您应该将类分配给您的递归元素,因为在添加它们时,您会得到同一个id的多个,这些id应该是唯一的。
  2. 您的keypress事件以#items div为目标,当您请求将焦点放在next()项时,在事件发生时按下一个条目就是提交按钮。

3.您也可以将一个项目排除在焦点之外,只需给它一个tabindex属性并设置一个负值,例如-1 (参见代码片段)。

​

代码语言:javascript
复制
$(document).ready(function () {

  $("#items").keypress(function(e) {
    if (e.which === 13)
    {
        e.preventDefault();
        $('#items').append('<div><input class="sub" type="text" name="subtask">' + 
        '<input type="button" value="delete" class="delete" /></div>');
      $(".sub").last().focus();
    }
    
  });


  $("body").on('click', ".delete",function(e){
    $(this).parent('div').remove();
  })

});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
<form action="">
  <div id="items">
    <input class="sub" type="text" name="subtask">
  </div>
  <input tabindex="-1" type="submit" value="submit">
</form>

​

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67793469

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档