2016-04-28 23 views
-1

私は動的に生成されたテキストボックスから値を渡そうとしており、そのIDも動的に生成されています。私はそのテキストボックスから値を得ましたが、その値を関数へのパラメータとして渡す方法はわかりません。誰かが私を助けることができますか? _ '+ A +')jQueryの関数にパラメータを渡す

がどのように渡すことができます#invoice_number:私はこのようにやったとき

var a = 0; 
var b = 0; 
var table; 
var invoice_number; 
//var c = 0; 

jQuery(document).ready(function() { 
    jQuery.ajaxSetup({ 
     cache: false 
    }); 

    table = jQuery("#table_billing").dataTable({ 
     "sAjaxSource": "includes/inc-billing2-db.php?mode=billing_dataTable", 
     "bDestroy": true, 
     "bPaginate": false, 
     "bInfo": false, 
     "bFilter": false, 
     "bSort": false, 
     "aoColumnDefs": [{ 
      "aTargets": [2], 
      "mRender": function(data, type, row) { 
       return '<input type="text" class="form-control invoice_number" name="invoice_number" id="invoice_number_' + a + '" placeholder="Invoice Number" required="required" onblur="getvalue(this)">'; 
       var x = row[3]; 
       var y = row[4]; 

      } 
     }, { 
      "aTargets": [3], 
      "mRender": function(data, type, row) { 
       return '<input type="text" class="form-control date" name="invoice_date" id="invoice_date_' + b + '" placeholder="Invoice Date" required="required">'; 
      } 
     }, { 
      "aTargets": [4], 
      "mRender": function(data, type, row) { 
       return '<input type="button" class="btn-group btn-default btn-sm save" value="Save" name="save_bill" id="save_bill" onclick="jQuery(this).save(' + row[3] + ', ' + row[4] + ', ' + jQuery("#invoice_number_'+a+'").val() + ');">'; 
      } 
     }], 
     "fnCreatedRow": function(nRow, aData, iDisplayIndex, iDisplayIndexFull) { 
      a = a + 1; 
      b = b + 1; 
      //c = c + 1; 
     } 
    }); 

    jQuery.fn.save = function(id, contract_invoice_request_id, value) { 
     alert(id); 
     alert(contract_invoice_request_id); 
     alert(value); 
     jQuery.ajax({ 
      type: "POST", 
      url: "includes/inc-billing-db.php?mode=save_billing", 
      data: { 
       "contract_id": aData[2], 
       "invoice_number": jQuery("#save_bill").val(), 
       "invoice_date": jQuery("#invoice_date").val() 
      }, 
      success: function(data, text) { 
       jQuery.msgbox_success(data.message); 
       jQuery("#billing_" + this.id).closest('tr').remove(); 
       jQuery("#date_" + this.id).closest('tr').remove(); 

      } 
     }); 
    } 
}); 

function getvalue(txt) { 
    alert(txt.id); 
    var tr = $("#" + txt.id).closest('tr'); 
    alert(tr); 
    var data = tr.first().text(); 
    alert(data); 
    data.invoice_number = $("#" + txt.id).val(); 
} 

は私が

認識できない表現としてエラーが発生します。これは私が試した方法です値?

+1

jQuery( "#invoice_number _ '+ a +'") 'jQuery("#invoice_number _ "+ a)に置き換えられましたか?あなたはここに入力ミスがあります – Med

+0

jsFiddleや何かセットアップして、コードのライブを見ることができますか? – PavKR

+0

@thePavあなたが言ったように使ってみましたが、値は未定義です。どのように値を取得できますか? @thePavNope。 –

答えて

0

あなたはこれはこれは間違ってい

onclick="jQuery(this).save(row[3], row[4], jQuery('#invoice_number_' + a).val())" 
+0

このように使用すると、row [3]が定義されていないため、row [4]が定義されていないためエラーが表示されます。 @Charlie H –

+0

はい。このコードでは 'raw'配列を使用しています。したがって、これらの値は期待されます。 –

+0

しかし、私は上記の質問のように、これらの値を得ています。だから、私はこれをどのように渡すことができますか? –

0

でなければなりません

onclick="jQuery(this).save(' + row[3] + ', ' + row[4] + ', ' + jQuery("#invoice_number_'+a+'").val() + ');" 

関数を呼び出す構文エラーがあります。jQuery("#invoice_number_'+a+'").val()

あなたはその後、あるべきjQuery("#invoice_number_" + a).val()

を試してみてくださいをあなたのの価値を提示

+0

アラートで値が未定義になります。 –

関連する問題