2

ユーザーがリストを作成できるRanker.comのようなフォームを作成する必要があります。私の問題は、複数のアイテムを追加できないことです。

divを試し.clone().appendTo()てみましたが、新しいdivを作成すると、「新しいアイテム」入力に挿入したタイトルが重複し、最初のタイトルと別のテキストの2〜3個のdivがあります。 これがJsfiddle.netへのリンクです

私はこの問題の解決策を見つけました。jsfiddle.netでご覧ください

4

1 に答える 1

1

cloneはすべて(テキストボックスの値、名前、ID、および考えられる属性)のクローンを作成するため、clone()を使用する代わりに、新しいテキストボックスを生成することをお勧めします。新しいテキストボックスを生成するには、次のコードを使用できます。

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>

ご覧のとおり、これは非常に単純な例ですが、おそらくここから取得できます。幸運を!

于 2012-07-29T01:23:27.070 に答える