0

フォームを作成しました。jquery を使用して、ラベルとユーザーが入力した入力値を配列に格納したいと考えています。フォームの下部には、送信の代わりに次へのボタンがあります。ユーザーが [次へ] を押すと、すべてのラベルとその入力の概要が表示されます。HTML は次のようになります。

<div class="form-item">
    <label>Zip Code:</label>
    <input type="text" />
</div>

<div class="form-item">
    <label>Address:</label>
    <input type="text" />
</div>

これを行う最善の方法は、次のように使用div.form-itemしてそれぞれをループすることだと思います。each()

$(".form-item").each(function(){
     var label = $(this).find('label').text(); 
     var input = $(this).find('input').val();
});

一意の変数を使用してフォーム項目の複数のチャンクを収集する方法がわかりません。これを完全に動的にしたいので、フォームフィールドがいくつあっても機能します。それらを配列に保存しますか? これについて最善の方法は何ですか?

4

2 に答える 2

0

メソッドを使用できますmap。また、クラスセレクターが正しくないことに注意してください。これは、を見逃してい.ます。

var arr = $('.form-item').map(function() {
               var lab = $('label', this).text();
               var val = $('input', this).val();
               return lab + val;
          }).get()

http://jsfiddle.net/b5Z6C/2/

于 2012-09-11T18:25:21.963 に答える
0

次のような配列に格納できます。

var els = new Array();
$(".form-item").each(function(){
  els.push({
    label: $(this).find('label').text(), 
    value: $(this).find('input').val()});
});

コードの後半で実行できることは次のとおりです。

for(var i in els){
  $('.where-you-want-it')
    .append('<p>'+els[i].label+'</p><span>'+els[i].value+'</span>');
}
于 2012-09-11T18:25:33.977 に答える