2013-06-13 25 views
5

我是jQuery的新手,我試圖在觸發模糊時查找文本框的行ID,但我無法使其工作到目前爲止。我試圖從帖子中獲取數組的值

當我在第一個文本框上觸發模糊事件時,我需要的全部內容就像中的form_data

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

,這裏是我的看法頁:

<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

請正確格式化您的代碼,以便其他人可以閱讀並幫助您。謝謝! –

+1

我不知道你想用這個AJAX做什麼,但是請注意,如果使用'.each()'調用它,就會在任何時候觸發一個''輸入' .blur'在_any_'input'元素上。 – Alnitak

回答

0

發現文本框的行-id時模糊triggred

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

在事件處理程序的行ID會可作爲:

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

請注意,您的HTML不合法 - 您需要在<tr>內部有<td>個元素。

如果您只是試圖查找(並序列化)同一行中的所有輸入,實際上並不需要該ID,那麼您可以從您的位置遍歷DOM是:

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

我認爲OP實際需要的是'var form_data = $(this).closest('tr')。find('input')。serialize();'但問題有點含糊。他可能只是要求輸入身份證,因爲他認爲他需要選擇所有輸入。 –

+0

@FelixKling它確實含糊不清。他已明確要求「行ID」,但似乎他需要輸入值。 XY問題? – Alnitak

+0

$(this).closest('tr')。find('input')。serialize();謝謝你,這就是我正在等待的 - Felix Kling 48 ...非常感謝你 – Rozer

0

只是使用.parent(),那麼你可以得到TR,也可以得到TR的ID。

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