2016-04-28 16 views
-1

Ich versuche, den Wert aus einem Textfeld, das dynamisch generiert wird, zu übergeben, und seine IDs werden auch dynamisch generiert. Ich habe den Wert aus dieser Textbox erhalten, aber ich weiß nicht, wie ich den Wert als Parameter an eine Funktion übergeben soll. Kann mir jemand helfen? Dies ist, wie ich versucht:Übergeben von Parametern an eine Funktion in jQuery

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(); 
} 

Wenn ich so habe ich den Fehler als

nicht erkannte Äußerung erhalten: #invoice_number _ '+ a +')

Wie kann ich weitergeben der Wert?

+1

'jQuery (" # Rechnungsnummer _ '+ a +' ")' ersetzt durch jQuery ("# ​​Rechnungsnummer _" + a)? Sie haben hier einen Tippfehler – Med

+0

Haben Sie eine jsFiddle oder etwas Setup, wo wir den Code live sehen können? – PavKR

+0

@thePav Ich habe versucht, wie Sie sagten, aber ich bekomme den Wert als undefiniert. Wie kann ich den Wert bekommen? –

Antwort

0

Sie haben einen Syntaxfehler in dem Sie die Funktion

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

nennen sollte diese

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

Wenn ich so verwende, bekomme ich den Fehler, da Zeile [3] nicht definiert ist, Zeile [4] ist nicht definiert. @ Charlie H –

+0

Ja. Sie verwenden 'rohe' Arrays in diesem Code. Also diese Werte werden erwartet. –

+0

Aber ich bekomme diese Werte, wie ich oben (in der Frage) angegeben habe. Also, wie kann ich das weitergeben? –

0

Dies ist falsch: jQuery("#invoice_number_'+a+'").val()

Versuchen jQuery("#invoice_number_" + a).val()

Sie sollten dann sein präsentiert mit einem Wert auf Ihrem alert(value);

+0

Ich erhalte den Wert als undefiniert in der Warnung. –

Verwandte Themen