2017-04-17 62 views
0

我将输入字段附加到动作的div上。当我尝试使用$(this).val()访问输入字段内的值时,我只是获取空值。

$('#div').append('<td class = "fund-amount"><input type="number" class="custom-amount" id='+value.response_code+' placeholder="Rs."></td>'); 

根据动作,可以有任何数量的输入字段附加到div。我想获取每个字段上输入的值。当我试图使用下面的这种方法获得价值时,它没有成功。但是,当我得到的值动态创建的ID和在$(this)的地方使用它的工作

$(document).keyup('.custom-amount',function(){ 
    console.log($(this).val()); //just logging empty 
    console.log($(this).attr('id')); //Logged undefined 

    }) 

,但是这一个工程

$(document).keyup('#100520',function(){ 
    console.log($('#100520').val());//works 
    console.log($('#100520').val());//works 
}); 

有什么毛病我的方法呢?

+0

这是更多的是一个方面的评论,但是你真的不应该在你的事件处理中重载'document',而是将它绑定到一个更接近于祖先的元素。 – vol7ron

+2

另一方评论。将表格单元格附加到div是不是很好的想法标记。 – gforce301

+1

创建一个[mcve],重现问题 – charlietfl

回答

1
$(document).on('key-up','.custom-amount',function(){ 
    console.log($(this).val()); //just logging empty 
    console.log($(this).attr('id')); //Logged undefined 

    }) 
0

你试过吗?

$(document).on('keyup', '.custom-amount', function(){ 
    console.log($(this).val()); 
    console.log($(this).attr('id')) 
}); 
0

试试下面的代码

$('#div').append('<td class = "fund-amount"><input type="number" class="custom-amount" id='+100520+' placeholder="Rs."></td>'); 
 

 
$('.custom-amount').keyup(function() { 
 
    console.log($(this).val()); // value 
 
    console.log($(this).attr('id')); // id 
 
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id= "div"> 
 
</div>
这里是工作的jsfiddle: https://jsfiddle.net/cm4rLvq1/

0

在调用您的处理程序$(this)工作正常。因为您正在处理像这样的事件$(document).keyup您的处理程序在document元素上调用,而不是在元素本身上调用,因此this指向document

但是,当你提供事件ARG对象到您的处理功能,您可以使用它的属性target将参考触发事件,像这样的元素:

$(function() { 
 
    $(document).on("keyup", ".custom-amount",function(e){ 
 
    console.log($(e.target).val()); 
 
    console.log($(e.target).attr('id')); 
 
    }) 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="text" class="custom-amount" id="some-id" />