jQuery onchange不适用于具有相同类的多个元素

时间:2013-12-03 10:39:25

标签: javascript jquery debugging onchange

我正在添加多个具有相同类的文本框元素。

它在我的项目中不起作用,出于演示目的,我将代码添加到(http://jsfiddle.net/8gbvd/)

它在那里如何调试此问题

谢谢

2 个答案:

答案 0 :(得分:2)

当您的文本框动态添加到页面时,您需要使用委派事件。所以

不要这样做:

jQuery('.qtyBox').change(
    function(){
         alert(jQuery(this).val());
    });

但这是不是这样:

jQuery('#priceRuleTable').on('change','.qtyBox',
    function(){ 
        alert(jQuery(this).val());
    });

cfr this page有关事件委派的详细说明。

请注意,如果您想在每次按键时执行操作(而不是在用户离开文本框时执行操作,则可以使用事件input代替change

答案 1 :(得分:0)

如果您为多个选择元素使用同一类,并且只想为更改的元素获取选择的值,则可以执行以下操作:

$('#priceRuleTable').on('change', '.qtyBox', function(){
    //to check only selected item is being triggered add css, you can remove it later
    $(this).parent().css("border", "2px solid red");
    //you should get value of the changed select element 
    var v = $(this).parent().find("option:selected").text();
    console.log(v);
});