0

コンテンツ領域に動的に読み込まれるフォームを作成しています。参加者を追加するには、リンクをクリックしたときにそのフォームの一部を jQuery で複製する必要があります。問題は、それが応答しないことです。こことグーグルで検索しましたが、何らかの理由でそこにある回答が機能しません。

これがhtml(または少なくとも重要な部分)です:

<div id="container">
    <div id="main">
        <div id="content">
            <div> 
                <h1>Hello, I am a form!</h1>
                <form id="contactform">
                    <p class="respondent">
                        <input type="text" value "first name" />
                        <input type="text" value="last name" />
                    </p>
                    <span id="addRespondent">add respondent</span>
                </form>
            </div>
        </div>
    </div>
</div>

フォームは、外部 html ファイルから .load() 関数を使用して、「コンテンツ」div に含まれる div に動的にロードされます。その div に以前に存在した他のコンテンツを置き換えます。

jQueryで次のようなことを試しました:

$(document).ready(function (e){
    $('#main').on('click','#addRespondent', function(e) {
        $('p.respondent').clone().prependTo('#addRespondent');
        e.preventDefault();
    });
});

これは、.clone() または .prependTo() 関数を誤って使用しても問題ありません。単純なアラートを関数に入れても、何も起こりません。結果なしで、検索とフィルターをいじってみました。誰かが私が間違っていたことを指摘していただければ幸いです。

4

1 に答える 1

0

あなたのコードで私が見ることができる唯一の問題は、代わりに

$('p.respondent').clone().prependTo('#addRespondent');

p.respondent(の先頭にevery を追加し#addRespondentます)、おそらく必要です

$('p.respondent:first').clone().insertBefore('#addRespondent');

p.respondent( の直前に最初のものを追加し#addRespondentます)。おそらく、フォームもきれいにしたいですか?

$('p.respondent:first')
  .clone().insertBefore('#addRespondent')
  .find("input").val("");

また、#mainドキュメントの準備ができていない可能性はありますか? もしそうなら、代わりに

$('#main').on('click', ...

他の要素に委任する必要があります。

$(document).on('click', ...
于 2013-01-18T11:02:30.000 に答える