如何在内联脚本的keyup事件之后触发jquery插件

时间:2014-01-11 16:35:52

标签: javascript jquery html

在此fiddle中,您可以看到我正在处理的脚本使用此plugin来创建估算值。但是,此插件仅允许在checkbox和radiobutton输入中使用数据属性中的预定值。但是,我需要能够输入我想要使用它的值,因此我创建了一个使用keyup来更改名为data-cost的数据属性的字段。此方法会更新数据属性,但不会触发脚本对输入的新值求和。

我想知道是否有编辑插件或在脚本事件发生时在脚本外触发它。

这是keyup脚本

$(function () {
    $('#account_balance1').on('keyup blur paste', function() {
        var self = this;
        setTimeout(function() {
            var str = $(self).val();
            $("input[data-cost][debt]").attr('data-cost',str.replace(/^\$/, ''));
            $("input[data-cost][debt]").attr('debt',str.replace(/^\$/, ''));
            calculateTotalFor() // this is how I do it on inline scripts
        }, 0)
    })     
});

这是从keyup事件更改data-attribute的输入。

<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=""/>

1 个答案:

答案 0 :(得分:1)

通过检查插件源,这可以解决您的问题:

$("input[data-cost][debt]").data('cost',str.replace(/^\$/, ''));
$("input[data-cost][debt]").data('debt',str.replace(/^\$/, ''));
$('#jquery-order-form').data('jprice').onChange();

问题是您更新了html属性,但没有更新内部数据。

在这里你有它的工作: http://jsfiddle.net/edgarinvillegas/8jdfJ/3/

来自玻利维亚拉巴斯的欢呼声