如何使One Jquery脚本适用于名称略有不同的多个输入

时间:2014-01-11 18:30:48

标签: javascript jquery html css

我有一个jquery keyup脚本,可以在更改checkbox input值时更改text input的数据属性。目前,它仅适用于checkbox inputtext input的一个实例。但是,我需要修改脚本以适用于10个实例。

在这个fiddle中你可以看到我让它适用于第一个实例编号1,但不适用于2-10。

例如,当用户使用id="account_balance1"更改输入值时,将触发脚本,如下所示。

<input type="checkbox" checked="checked" data-cost="100" debt="" value="" name="f_2[]"/>

这是为keyup事件输入值的输入

<input type="text" maxlength="7" class="balance" id="account_balance1" name="cardbalance" value=""/>

但是我需要它来处理这两个输入的10个实例;对于每个实例,有li id=card_" and input id="account_balance_"增加1个增量,例如...... li id="card_1"li id="card_2"li id="card_3",依此类推。这与input id="account_balance_1相同,只有_2_3,依此类推。

这是keyup脚本

$(function () {
    $('#account_balance1').on('keyup blur paste', function() {
        var self = this;
        setTimeout(function() {
            var str = $(self).val();
            $("input[data-cost][debt]").data('cost',str.replace(/^\$/, ''));
            $("input[data-cost][debt]").data('debt',str.replace(/^\$/, ''));
            $('#jquery-order-form').data('jprice').onChange();
        }, 0)
    })     
});

2 个答案:

答案 0 :(得分:0)

只需更改你的jquery选择器:

而不是:

$('#account_balance_1').on('keyup blur paste', function() {

这样做:

$('.balance').on('keyup blur paste', function() {

这是有效的,因为您所涉及的所有输入都具有类balance

在这里小提琴:http://jsfiddle.net/edgarinvillegas/8jdfJ/10/

干杯

答案 1 :(得分:0)

看到这个 http://api.jquery.com/attribute-starts-with-selector/ 您只需使用此选择器来选择适当的元素

 $('[id^=account_balance_').on('keyup blur paste', function() {...