0

私はゲームに取り組んでおり、ユーザーが文字数を入力するフォーム入力があります。これが発生すると、各キャラクターの名前に対してさらに多くの入力が表示されます。私の問題は、それらの名前を配列に読み込むことです。

新しい入力が作成されると、nameButton という新しいボタンも作成されます。これは私の問題です。クリックしようとすると、値を配列に格納する必要があるときに何も起こりません。確認するためだけに関数の最後にプロンプ​​トを配置しましたが、それは呼び出されません。

何か提案があれば、ここにjsFiddleがあることをお知らせください。

    function nameRecording(names,$this){
    var addRows='<tr id=newRows>';
    for(var i =1; i<=names; i++)
    { var nearTr=$this.closest('tr');
            addRows=addRows+'<td>Name one:</td><td><form><input type="text" name="charcItem" class = "newR"/></form></td>';
    }
    addRows=addRows+'<td><div class="button" id="nameButton"> Add! </div></td></tr>';
    nearTr.after(addRows);
};    
$('#nameButton').click(function(){
    names=$(".newR").map(function(){
        return $(this).val();
    });
    prompt(names);
});

そして、私の機能のいくつかがあります。

4

1 に答える 1

2

この方法を試してください:

$(".form").on('click', '#nameButton', function () {
    names = $(".newR").map(function () {
        return this.value;
    }).get();
    prompt(names);
});
  • 動的要素に on を使用してイベント委任を使用できます
  • コレクション オブジェクトを配列に変換するには、 .get()on resultを実行する必要があります。.map()

デモ

于 2013-07-11T02:19:17.290 に答える