改变ID,一个JQuery函数

时间:2014-09-22 20:16:23

标签: javascript jquery

我必须使用ID而不是类似可重复的东西,只是因为我调用的插件的工作方式。所以下面,我必须创建两个不同的函数,以便在单击复选框时强制bootstrapValidator在特定字段中。我不能使用像

这样的东西
'revalidateField', 'availmon[] || availtue[]'

但是我可以使用其他一些方法或变量,所以我没有做同样的功能7x吗?

附加了所有外部资源的

Here is a JSFiddle ,以了解我实际在做什么。

$(function () {
    $('#checkallmon').on('click', function () {
        $(this).closest('fieldset').find(':checkbox').prop('checked', this.checked);
        $('#app').bootstrapValidator('revalidateField', 'availmon[]');
    });
});

$(function () {
    $('#checkalltue').on('click', function () {
        $(this).closest('fieldset').find(':checkbox').prop('checked', this.checked);
        $('#app').bootstrapValidator('revalidateField', 'availtue[]');
    });
});

1 个答案:

答案 0 :(得分:0)

如果你这样做:

$(function() {
    $(".checkall").on('click', function() {
        var elem = $(this);
        var validationRule = elem.data('validation-rule');
        elem.closest('fieldset').find(':checkbox').prop('checked', this.checked);
        $('#app').bootstrapValidator('revalidateField', validationRule+'[]');
    });
});

在HTML中你可以这样做:

<label class="checkbox-inline preferred">
    <input type="checkbox" id="checkallmon" class="checkall" name="availmon[]" data-validation-rule="availmon" value="open">Fully Available
</label>

没试过,但它应该有效。因此它绑定到一个类(使用您的checkall类),该函数从数据属性validation-rule获取验证规则。因此,您只需将checkall作为类,将data-validation-rule与规则名称分配给任何复选框。

您也可以使用.attr('name')将名称用作“规则”,但在我看来,数据属性更清晰。

我希望我能以正确的方式理解你的问题。