创建列表时,在Ranker.com上创建多个项目

时间:2012-07-28 22:17:35

标签: javascript jquery list

我需要在Ranker.com上创建一个表单,用户可以在其中创建列表。我的问题是我无法添加多个项目。

我尝试使用div .clone().appendTo(),但是当他们创建新的div时,我插入的标题是' new item&#39}输入,重复,我有2-3个div与标题从第一个+另一个文本。 Here is link to Jsfiddle.net

嘿伙计们!我找到了解决这个问题的方法。请参阅jsfiddle.net

1 个答案:

答案 0 :(得分:1)

您可能只想生成一个新文本框而不是使用clone(),因为克隆克隆整个事物(文本框的值,名称,ID和您可以想到的任何属性)。 要生成新文本框,您可以使用以下代码:

var new_txt = $('<input>').attr({'type' : 'text'}); 

您可以通过用逗号分隔每个属性来为输入分配更多属性:

$('<input>').attr({'type' : 'text', 'name' : 'something'}); 

为了达到你想要的目的,你需要一个容器来附加新生成的文本框。

<div id="container">
    <input type="text" id="txt_item"/>
</div>

然后只使用live()方法,以便每次用户在文本框中按Enter键时都会生成一个新文本框:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
$('input[type=text]').live('keydown', function(e){
    var new_txt = $('<input>').attr({'type' : 'text'});
    if(e.keyCode == 13){//If user press enter
        new_txt.appendTo('#container').focus(); //append then focus to new textbox
    }
});
</script>

正如您所看到的,这是一个非常简单的示例,但您可以从此处获取它。古德勒克!