2013-07-04 38 views
0

我试图在用户每次按下输入时在页面上插入一个新的文本字段。在Jquery上复制文本字段

我的代码

$(":text").on("keypress", function(e) { 
if (e.keyCode == '13') { 
    e.preventDefault() 
    $(this).after("<p><input type='text' class='textfield' maxlength='10' value=''/>  <span></span> </p>") 
} 

    }); 

当我按在原单文本字段中输入,但新一不反应的任何印刷机的新文本字段出现。我假设功能上与现场类似,这应该是解决这类问题的方法。怎么了?

+1

您事件委托到精确的元素。这意味着新创建的元素处于冷态。您需要将绑定按键绑定到外部容器并将其限制为文本字段。 – Tommi

回答

0

您需要为新添加的元素做事件代理

Use event delegation通过使用()函数

例:

$("#parent").on('keypress', 'textboxselector', function(event) { 

----do the things here 
}); 
-1

请参考下面的代码

 $(".textfield").live("keypress", function (e) { 
     if (e.keyCode == '13') { 
      e.preventDefault(); 
      $(this).after("<p><input type='text' class='textfield' maxlength='10' value=''/>  <span></span> </p>") 
     } 

    }); 
+0

你能解释我downvote的原因吗? –

+0

关于jquery的1.7版本中引入。 Live从1.7开始不再使用。所以你可能会使用早于1.7版本的jquery。 –

相关问题