0

私は一連のフォームを持っています。基本的には複数の返信ボックスです。各返信フォームの値を取得してから、各フォーム ブロックの下のコンテナに追加しようとすると、それぞれの値を取得して複製することができます、コンテナに追加しますが、問題は私のスクリプトが各ブロックに値を追加していないことです。基本的に最初のブロックのみに追加しています

これは私のhtmlです:1

        <div class="post-container">
            <form class="reply-form">
                <div class="reply-box">
                    <textarea placeholder="Reply box 2..." columns="10" rows="1" name="comment-input"></textarea>
                    <input type="submit" value="Send">
                </div>
                <div class="post-dropdown"></div>
                <div class="post-dropdown-content">
                    <div class="post-dropdown-reply hidden"></div>
                </div>
            </form>
        </div>

        <div class="post-container">
            <form class="reply-form">
                <div class="reply-box">
                    <textarea placeholder="Reply box 3..." columns="10" rows="1" name="comment-input"></textarea>
                    <input type="submit" value="Send">
                </div>
                <div class="post-dropdown"></div>
                <div class="post-dropdown-content">
                    <div class="post-dropdown-reply">1</div>
                    <div class="post-dropdown-reply">2</div>
                    <div class="post-dropdown-reply">3</div>
                    <div class="post-dropdown-reply">4</div>
                </div>
            </form>
        </div>
        ​

これは私のjsです:

        function gettingReplyVal() {

            $('.reply-form').submit(function(e) {
                var post_clone =    $('.post-dropdown-content').first().clone();

                var textAreaValue = $(this).find('textarea').val();

                $(post_clone).insertBefore(".post-dropdown-content:first").find('.post-dropdown-reply').html(textAreaValue);

                e.preventDefault();

            });
        }

        gettingReplyVal();
4

2 に答える 2

0

これをチェックしてください: http://jsfiddle.net/NgEpS/1/

変更は次の行にあります。

 $(post_clone).insertBefore($(this).find(".post-dropdown-content")).find('.post-dropdown-reply').html(textAreaValue);

$(this) コンテキストを使用して .post-dropdown-content div を見つけるように変更しました。あなたはページの最初のものを見つけていました。

于 2012-11-28T21:22:46.940 に答える
0

私はあなたがこのようなものが欲しいと思います:

// Find the text that was entered
var textAreaValue = $(this).find('textarea').val();

// Make a new post div, and add the appropriate classes
post = $("<div>").addClass("post-dropdown-reply");

// Set its html
post.html(textAreaValue);

// Add it onto the content list
$(this).find('.post-dropdown-content').prepend(post);

これには、新しい投稿 div を最初から生成する必要があるという欠点がありますが、はるかにうまく機能します。( jsfiddleを参照)

于 2012-11-29T00:11:28.010 に答える