当改变一个类时,超过了最大调用栈大小

Maximum call stack size exceeded when changing a class - Bootstrap, jQuery

本文关键字:过了 调用 改变 一个      更新时间:2023-09-26

我使用jQuery 2.1.1, jQuery UI 1.11, Bootstrap 3.2, Fuel UX 2.3(仅用于表单向导)和BootstrapValidator v0.5.1-dev.

我在燃料UX向导中有一个巨大的引导表单,带有BootstrapValidator验证,以及大量用于事件和东西的jQuery(总页面是1900行,这就是为什么我没有提供任何代码)。

我有一个div类color -xs-8周围我的所有形式,一切都工作得很好。然后我把它改成class="container"(只改变代码,来回播放几次),现在Chrome的控制台说:

Uncaught RangeError: Maximum call stack size exceeded 

为什么?

我已经检查了调用堆栈,那里除了jQuery函数什么都没有(所以它不应该是我或BootstrapValidator已经启动的东西,应该吗?)

我有另一个页面,具有相同的环境,类似的大小和类似的代码-从。col-xs-8到。container的更改没有问题。

更新:我发现,如果我离开主div没有一个类,我也得到RangeError。这就是我的JS https://gist.github.com/sofixa/be2e575cf8a198c1cf89

如果您的表单不是由Bootstrap类构成的(包含字段和相关标签的元素没有form-group类),您将看到错误:

Uncaught RangeError: Maximum call stack size exceeded

参考:最大调用堆栈大小超过了官方文档中的错误警告。

bootstrapValidator函数下提到的所有字段都应该有一个具有form-group类的父类

所以应该是这样的

<div class="form-group">
    <label class="col-lg-3 control-label">No of bottles out for delivery</label>
    <div class="col-lg-5">
        <input type="text" value="" class="form-control" maxlength="3" name="bottles_out_for_delivery">
    </div>
</div>
<div class="form-group">
    <label class="col-lg-3 control-label">No of bottles returned</label>
    <div class="col-lg-5">
        <input type="text" value="" class="form-control" maxlength="3" name="bottles_returned">
    </div>
</div>
$('#add_bulk_delivery_form').bootstrapValidator({
    fields: {
        bottles_out_for_delivery: {
            validators: {
                notEmpty: {
                    message: 'Bottles out for delivery field can''t be empty'
                },
                regexp: {
                    regexp: /^[0-9]+$/,
                    message: 'Bottles out for delivery can only contan numbers'
                }
            }
        }
    }
});