我有一个带动态循环行的表,里面有七个静态表数据(td),里面有这个表数据输入框。所以我想使用blur event(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>
on myscript我试图通过“添加”类来获取表数据的值
它只返回第一个循环表行的表数据
请帮助,我在jquery中不太好
答案 0 :(得分:0)
尝试:
$(document.ready(function() {
$("#mytable").on("blur", "tr.temp .added:not(.hasadded)", function() {
var userinput = $(this).val();
setTimeout(function() {
console.log(userinput);
}, 1000);
});
});
您无需在blur
处理程序中添加click
处理程序。使用.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);
});
});
});