ajax中的Textbox onchange事件返回结果

时间:2015-10-03 19:01:39

标签: javascript jquery ajax

我正在尝试为通过ajax返回的一些输入框实现onchange事件。但是,我的代码不起作用,也没有显示任何错误。

这是我的ajax返回的内容。

<td>
    <input type='text' class='form-control form-filter input-sm'
         id='units_$inpuxIndex' name='units_$inpuxIndex' value='$details->units'>
</td>
<td>
    <input type='text' class='form-control form-filter input-sm' 
         id='ppp_$inpuxIndex' name='ppp_$inpuxIndex' 
         value='$details->customer_price'/>
</td>

这是我的jquery代码: -

<script>
    $("#units_1").on('change keyup paste', function() {
    alert('I am pretty sure the text box changed');
    });
</script>

units_1 是通过ajax返回的众多输入框之一的名称。

1 个答案:

答案 0 :(得分:3)

您需要使用 event delegation ,因为它们是动态添加的

  

事件委托允许我们将单个事件侦听器附加到父元素,该元素将为匹配选择器的所有后代触发,无论这些后代现在是存在还是将来添加。 (摘自http://learn.jquery.com/events/event-delegation/

$(document).on('change keyup paste',"#units_1", function() {
 alert('I am pretty sure the text box changed');
});

更新:如果您要选择ID以units_开头的元素,那么您可以使用 Attribute Starts With Selector [name^=”value”]

$(document).on('change keyup paste','[id^="units_"]', function() {
 // if you want select based on name then use '[name^="units_"]'
 alert('I am pretty sure the text box changed');
});