按键上的Jquery Cloning div

时间:2015-08-24 12:33:32

标签: jquery twitter-bootstrap

我有一大堆代码:

<body>
  <div class="row">
    <!-- Begin cloned email section -->
    <div id="entry1" class="col-md-4 clonedInput_1">
      <!-- Text input-->
      <div class="form-group">
        <label>Email:</label>
        <input type="text" class="form-control">
      </div>
    </div><!-- end #entry1 -->
    <!-- Button (Double) -->
  </div>
  <button type="button" id="btnAdd_1" name="btnAdd" class="btn btn-primary" style="display:none"></button>
  <button type="button" id="btnDel_1" name="btnDel" class="btn btn-danger" style="display:none"></button>

<script>
  $('.clonedInput_1 div input').keypress(function(e) {
    if (e.which === 32 || e.keyCode === 32) {
      $('#btnAdd_1').click();
      $('.clonedInput_1:last-child div input').val(null);
      $('.clonedInput_1:last-child div input').focus();
    }
  });
</script>
</body>

注意: 带有ID ='btnAdd_1'的按钮,使用class ='clonedInput_1'克隆div。 keyCode 32 =键盘上的'Space'键。

它已经克隆了div,它专注于它,但是当我专注于第二个div时,当我按下键盘上的“空格”键时,它不会克隆自己。我必须手动聚焦回第一个div,并按'空格'进行克隆。

为什么?,克隆的第二个不应该也有相同的类吗? (所以jquery中的选择器可以检测到它。)

2 个答案:

答案 0 :(得分:1)

脚本只在执行时向该类添加监听器,使用

 $(document).on(
        "keypress",        
        ".clonedInput_1",
        function(){..}
    ) 

代替

答案 1 :(得分:0)

试试这个

function AllowNumbers(e, field) {
var val = field.value;
var re1 = /(^[0-9$]+)/g;

val = re1.exec(val);
if (val) {
    field.value = val[0];
} else {
    field.value = "";
}
}

而不是

$('.clonedInput_1:last-child div input').val("");
$('.clonedInput_1:last-child div input').focus();

这应该把重点放在最后一个输入字段上。