Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/464.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 可变ID';s、 一个JQuery函数_Javascript_Jquery - Fatal编程技术网

Javascript 可变ID';s、 一个JQuery函数

Javascript 可变ID';s、 一个JQuery函数,javascript,jquery,Javascript,Jquery,我必须使用ID而不是像class这样的可重复的东西,这仅仅是因为我调用的插件的工作方式。下面,我必须创建两个不同的函数,以便在单击复选框时强制bootstrapValidator在特定字段中。我不能用像这样的东西 'revalidateField', 'availmon[] || availtue[]' 但是有没有其他的方法或者变量我可以使用,这样我就不用做同样的函数7x了 附带所有外部资源,以查看我实际在做什么 $(function () { $('#checkallmon').on

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

'revalidateField', 'availmon[] || availtue[]'
但是有没有其他的方法或者变量我可以使用,这样我就不用做同样的函数7x了

附带所有外部资源,以查看我实际在做什么

$(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[]');
    });
});

如果你这样做:

$(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+'[]');
    });
});
<label class="checkbox-inline preferred">
    <input type="checkbox" id="checkallmon" class="checkall" name="availmon[]" data-validation-rule="availmon" value="open">Fully Available
</label>
在HTML中,您可以这样做:

$(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+'[]');
    });
});
<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')
将名称用作“规则”,但在我看来,数据属性是一种更简洁的方式


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

太棒了-谢谢!更新JSFIDLE以查看您的实际工作:我很高兴这对您有所帮助,也很高兴看到它的实际工作