2014-07-12 30 views
0

我有一個動態循環行表,裏面有7個靜態表數據(td),這裏面的數據是輸入框。所以我想使用模糊事件(jQuery)獲取每個表格數據輸入的輸入值。如何在每個循環錶行上發生模糊事件

這裏是我的PHP代碼迴路錶行

<table =」mytable」> 
<?php foreach ($vendors_details as $value) { ?> 

    <tr class="temp">(

     <td class="magazineid"><?php echo $value->magazine_name; ?></td> 
     <td class="allocated"><input type="text" id="disabledInput" name="allocate[]" class="form-control" value="<?php echo $value->allocate;?>" disabled></td> 
      <td class="add"><input type="text" name="add" placeholder="add" class="form-control added" required></td> 
      <td class="less"><input type="text" name="less[]" id="less" class="form-control" required></td> 
      <td class="returned"><input type="text" name="return[]" id="return" class="form-control" required></td> 
      <td class="paided"><input type="text" name="paid[]" class="form-control" required></td> 
      <td class="amounted"><strong><input type="text" id="amount" value="<?php echo $value->Amount;?>" disabled></strong></td> 
    <td><input type="text" name="magazine_id[]" id="magazine_id" value="<?php echo $value->magazine_id; ?>" hidden ></td> 

      </tr> 
</table> 

這裏是我的腳本

<script type="text/javascript"> 

$(document).ready(function(){ 
    $(document).on("click",".added",function(){ 
     if(!$(this).hasClass("hasadded")){ 
      $("#mytable").find("tr.temp").each(function(index){ 

       $(".added").blur(function(){ 
        var userinput = $(".added").val(); 
        setTimeout(function(){ 
         console.log(userinput); 
        }); 
       }); 

      }); 
     } 
    }); 
}); 
</script> 

上的MyScript我一直試圖讓帶班表數據的價值「加」

它只返回只有第一個循環表ro的表數據w^

請大家幫忙,我不是在jQuery的多好

+0

你在你的循環創建重複的ID。 ID應該是唯一的。你確定你需要他們嗎? – Barmar

+0

您不應該在'click'處理程序中添加'blur'處理程序。你會得到多個處理程序,因爲每次你點擊你添加另一個處理程序。另外,我不明白你爲什麼在'.each'循環中執行它,因爲你沒有對你迭代的元素做任何事情。也許你的意思是'$(this).find(「。added」)'? – Barmar

+0

你也在'

>'中的ID處有」聰明的引號「。 HTML不理解這一點,你必須使用普通的引號。而且你也缺少'id ='。 – Barmar

回答

0

嘗試:

$(document.ready(function() { 
    $("#mytable").on("blur", "tr.temp .added:not(.hasadded)", function() { 
     var userinput = $(this).val(); 
     setTimeout(function() { 
      console.log(userinput); 
     }, 1000); 
    }); 
}); 

你並不需要添加click處理器內部的blur處理程序。使用.on進行委託會自動處理使用AJAX動態加載的元素。

要設置Ajax響應的單元格,你可以做這樣的事情:

$(document.ready(function() { 
    $("#mytable").on("blur", "tr.temp .added:not(.hasadded)", function() { 
     var userinput = $(this).val(); 
     var cell7 = $(this).closest("td").siblings().eq(6).find("input"); 
     $.post("URL", { param: userinput }, function(result) { 
      cell7.val(result); 
     }); 
    }); 
}); 
+0

謝謝你的作品。 – Peter88tom

+0

嘿,巴爾瑪再次抱歉,如果我想要獲得該錶行中第七個表格單元格的值,並將其更改爲ajax response.help,我又重新堆疊了。 – Peter88tom

+0

任何一個請幫忙! – Peter88tom

相關問題