2013-06-13 10 views
5

Ich bin neu in jQuery und ich versuche, die Zeilen-ID des Textfelds zu finden, wenn Unschärfe ausgelöst wird, aber ich konnte es bisher nicht funktionieren.Ich versuche, den Wert des Arrays aus dem Post

Alles, was ich brauche, ist etwas wie #employee_0 in form_data, wenn das Blur-Ereignis auf meiner ersten Textbox ausgelöst wird.

$("input").blur(function() { 

    $('input').each(function (index, value) { 

     var form_data = $("#employee_" + index).find('input').serialize(); 
     $.ajax({ 
      url: "<?php echo site_url("HomeController/calculate_time_lap "); ?>", 
      type: 'POST', 
      data: form_data, 
      success: function (result) { 
       $('input').closest('tr').find('.TextBox3').val(result); 
      } 
     }); 
     return false; 
    }); 

und hier ist meine Ansicht Seite:

<tr id="employee_0"><input type ="textbox"></tr> 
<tr id="employee_1"><input type ="textbox"></tr> 
<tr id="employee_2"><input type ="textbox"></tr> 
<tr id="employee_3"><input type ="textbox"></tr> 
<tr id="employee_4"><input type ="textbox"></tr> 
+0

Bitte formatieren Sie Ihren Code richtig, damit andere Leute es lesen und Ihnen helfen können. Vielen Dank! –

+1

Ich weiß nicht, was Sie mit diesem AJAX zu tun versuchen, aber beachten Sie, dass, wie mit dem Aufruf '.each()' geschrieben, ein AJAX-Post für _every_ 'input'-Element jedes Mal ausgelöst wird, wenn Sie ein' auslösen .blur' on _any_ 'input_element. – Alnitak

Antwort

0

die Zeile -id von Textbox finden, wenn Unschärfe triggred ist

$("input").blur(function() { 
    var rowID = $(this).closest('tr').prop('id'); 
    // some more stuff 
}) 
1

Im Event-Handler wird die Zeilen-ID sein verfügbar als:

$(this).closest('tr').attr('id'); 

Beachten Sie, dass Ihr HTML nicht legal ist - Sie benötigen <td> Elemente innerhalb der <tr>.

Wenn Sie stattdessen nur versuchen, alle Eingaben in derselben Zeile zu finden (und zu serialisieren), brauchen Sie die ID überhaupt nicht. Sie können das DOM nur von dort aus durchlaufen sind:

$("input").blur(function() { 
    var form_data = $(this).closest('tr').find('input').serialize(); 
    $.ajax(...); 
}); 
+1

Ich denke, was das OP eigentlich will, ist 'var form_data = $ (this) .closes ('tr'). Find ('input'). Serialize();' Aber die Frage ist ein bisschen vage. Er hätte vielleicht nach der ID gefragt, weil er denkt, dass er sie braucht, um alle Eingaben auszuwählen. –

+0

@FelixKling ist es in der Tat vage. Er hat explizit nach der "Zeilen-ID" gefragt, aber es scheint, dass er den Wert der Eingabe benötigt. XY Problem? – Alnitak

+0

$ (this) .closest ('tr'). Find ('Eingabe'). Serialize(); Danke, dass ich genau darauf gewartet habe - Felix Kling 48 ... vielen Dank – Rozer

0

Verwenden Sie einfach .parent(), dann können Sie tr erhalten, können auch trs ID erhalten.

$("input").blur(function(){ 
    alert($(this).parent().attr('id')); 
}); 
Verwandte Themen