2017-01-22 11 views
0

私は、ブートストラップ3に動的フィールドを持っています。フォームには3つの部分がタブで表示されます。投稿の配列w

フォームタグはモーダルで自動的に削除されるので、フィールドは削除されています。 jqueryの属性セレクタ$( "input [name = 'invoice-date']")。val()を使用して、残りの値をポストすることができます。しかし、私の窮地はここにあります:

<div class="tab-pane" id="tab_2"> 
       <div class="row"> 
        <br/> 
        <div class="form-group"> 
        <div class="col-lg-2"> 
         <label>#</label> 
        </div> 
        <div class="col-lg-7"> 
         <label>Description</label> 
        </div> 
        <div class="col-lg-3"> 
         <label>Amount</label> 
        </div> 
        </div> 
        <div class="form-group"> 
        <div class="col-lg-2"> 
         <label>Item 1.</label> 
        </div> 
        <div class="col-lg-7"> 
         <input type="text" class="form-control" name="items[1][description]" /> 
        </div> 
        <div class="col-lg-3"> 
         <input type="text" class="form-control" name="items[1][amount]" /> 
        </div> 
        </div> 
        <div class="form-group"> 
        <div class="col-lg-2"> 
         <label>Item 2.</label> 
        </div> 
        <div class="col-lg-7"> 
         <input type="text" class="form-control" name="items[2][description]" /> 
        </div> 
        <div class="col-lg-3"> 
         <input type="text" class="form-control" name="items[2][amount]" /> 
        </div> 
        </div> 
        <div class="form-group"> 
        <div class="col-lg-2"> 
         <label>Item 3.</label> 
        </div> 
        <div class="col-lg-7"> 
         <input type="text" class="form-control" name="items[3][description]" /> 
        </div> 
        <div class="col-lg-3"> 
         <input type="text" class="form-control" name="items[3][amount]" /> 
        </div> 
        </div> 
        <div class="form-group"> 
        <div class="col-lg-2"> 
         <label>Item 4.</label> 
        </div> 
        <div class="col-lg-7"> 
         <input type="text" class="form-control" name="items[4][description]" /> 
        </div> 
        <div class="col-lg-3"> 
         <input type="text" class="form-control" name="items[4][amount]" /> 
        </div> 
        </div> 
      </div> 
     </div> 

それは配列であると考えてアイテムの価値を投稿する方法は?私がタグ内のフィールドを囲む位置にあった場合、単純な.serialize()が機能します。

これは、これまで私のAjaxのポストです:

$('#gen-invoice').on('click',function() 
{ 
    $.ajax(
    { 
    url: 'path("create-invoice")', 
    data: { invoiceDate: $("input[name='invoice-date']").val(), job: $("input[name='inv-job-id']").val(), att: $("input[name='att']").val(), summary: $("input[name='inv-remarks']").val(), additional: $("input[name='inv-add']").val(), vattable: $("input[name='inv-vattable']").val(), items: $("input[name='items[]']").serialize(), deductions: $("input[name='deductions[]']").serialize() }, 
    success: function(response) 
    { 
     if(response.response == 200) 
     { 
     window.open(response.path,'_blank'); 
     } 
     else 
     { 

     } 
    } 
    } 
) 
}); 

答えて

1

請求書内の項目に繰り返すないのはなぜ?
まず、アイテムに異なるクラス名(.invoice-item)を指定します。
次に、項目をitrateし、配列にプッシュして、パラメータとしてajax呼び出しに渡します。

var invoice_items = []; 
$(".invoice-item").each(function(){ 
    invoice_items.push({name: $(this).val(), 
    description: $(this).parent().prev().children().val()}); 
}); 

わかるように、トラバースは簡単な方法で実行できますが、ポイントを取得するだけです。

+1

ありがとうございました、私は反復なしの選択に役立つかもしれない私には関与していないセレクターがあると思っていました –

関連する問題