javascript - 焦点不适用于输入字段 Jquery

标签 javascript jquery html keypress

我正在尝试使用 jquery 动态添加输入字段。我能够添加输入字段,但无法将焦点移动到下一个输入字段。

代码如下:-

$(function() {
  var scntDiv = $('#p_scents');
  var i = $('#p_scents p').size() + 1;

  $(scntDiv).keypress( function(event) {
    if (event.which==13){
      $('<p><label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
      i++;
      return false;
    }

  });

  $('#remScnt').live('click', function() { 
    if( i > 2 ) {
      $(this).parents('p').remove();
      i--;
    }
    return false;
  });
});
* { font-family:Arial; }
h2 { padding:0 0 5px 5px; }
h2 a { color: #224f99; }
a { color:#999; text-decoration: none; }
a:hover { color:#802727; }
p { padding:0 0 5px 0; }

input { padding:5px; border:1px solid #999; border-radius:4px; -moz-border-radius:4px; -web-kit-border-radius:4px; -khtml-border-radius:4px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<h2><a href="#" id="addScnt">Add Another Input Box</a></h2>

<div id="p_scents">
  <p>
    <label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt" value="" placeholder="Input Value" /></label>
  </p>
</div>

最佳答案

$(function() {
        var scntDiv = $('#p_scents');
        var i = $('#p_scents p').size() + 1;
        
        $(scntDiv).keypress( function(event) {
        if (event.which==13){
                $('<p><label for="p_scnts"><input type="text" id="p_scnt_' + i +'" size="20" name="p_scnt_' + i +'" value="" placeholder="Input Value" /></label> <a href="#" id="remScnt">Remove</a></p>').appendTo(scntDiv);
                 $("#p_scnt_" + i).focus();
                i++;
                return false;
                }
              
        });
        
        $('#remScnt').live('click', function() { 
                if( i > 2 ) {
                        $(this).parents('p').remove();
                        i--;
                }
                return false;
        });
});
* { font-family:Arial; }
h2 { padding:0 0 5px 5px; }
h2 a { color: #224f99; }
a { color:#999; text-decoration: none; }
a:hover { color:#802727; }
p { padding:0 0 5px 0; }

input { padding:5px; border:1px solid #999; border-radius:4px; -moz-border-radius:4px; -web-kit-border-radius:4px; -khtml-border-radius:4px; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<h2><a href="#" id="addScnt">Add Another Input Box</a></h2>

<div id="p_scents">
    <p>
        <label for="p_scnts"><input type="text" id="p_scnt" size="20" name="p_scnt" value="" placeholder="Input Value" /></label>
    </p>
</div>

您可以为每个附加的新原始数据提供唯一的 ID,附加后您可以使用该 ID 触发焦点。

关于javascript - 焦点不适用于输入字段 Jquery,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49810323/

相关文章:

javascript - 图像 URL 在尝试用作背景样式时不起作用

jQuery 函数不适用于 ng-repeat

php - PHP 中的 Echo Javascript 函数显示模态显示不正确

css - 将 div 固定到某个位置(随着窗口大小调整而保持固定)

html - 带有 HTML5 视频的 Azure AD

javascript - 在长页面中间暂时锁定页面滚动

javascript - 如何将链接从同级列表分别克隆到另一个列表

javascript - 使用Howler.js播放多个音频文件

jquery - 允许用户编辑 CSS

javascript - 颜色框 - 错误 : cboxElement missing settings object