0

だから私はこれを持っていますhttp://jsfiddle.net/barmar/mDfQT/10/

$('.add_options').on('click', function () {
    $('#variants').append('<div class="some_id"><input type="text" id="prop_name" class="prop_name" placeholder="Property name"><a href="#" class="remover">Remove</a></div>');
    var size = parseInt($('#variants').attr("data-size"), 10) + 1;
    $('#variants').attr("data-size", size);
    $("#count").text(size);
});
$('#variants').on('click', '.remover', function () {
    $(this).closest('.some_id').hide();
    var size = parseInt($('#variants').attr("data-size"), 10) - 1;
    $('#variants').attr("data-size", size);
    $("#count").text(size);
});

ユーザーは、必要なだけフィールドを追加できます。ユーザーがフィールドの値 (n 番) を更新した後、ajax を使用してデータを送信したいと思います。私の質問は、各データフィールドを区別できるようにしながら、すべてのテキストボックスからデータを取得する最も効率的な方法は何ですか(データベースを更新できるようにするため)。Ps:実際には 1 行に 2 つのテキスト ボックスがあるため、ユーザーが [追加] をクリックすると、2 つのテキスト ボックス (プロパティ名とプロパティ タイプ) が一度に追加され、フィドルにはプロパティ名しかありません。
ありがとう。

4

2 に答える 2

1

シリアル化 jQuery 関数を使用します: http://api.jquery.com/serialize/

入力をフォームにラップすると、送信時にデータをシリアル化し、ajax を投稿できます。

var dataToBeSubmitted = $('form').serialize()
于 2013-06-21T23:43:55.893 に答える
1

コードにいくつかの問題があります

  1. ID は一意で、ページごとに 1 つだけです
  2. あなたの HTML は無効です -ulタグにはliタグのみが含まれている必要があります
  3. .serializeメソッドを使用する場合は、属性inputが必要ですname

しかし、このバグを忘れた場合の解決策は次のとおりです。

$('input[name=submit]').click(function () {
    var data = $('#variants .prop_name').serialize();
    console.log(data);
});

jsFiddle コード

于 2013-06-22T00:26:22.650 に答える