4

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

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

我的所有表单周围都有一个带有 col-xs-8 类的 div,一切正常。然后我将其更改为 class="container" (仅更改代码,来回播放了几次),现在 Chrome 的控制台显示:

Uncaught RangeError: Maximum call stack size exceeded 

为什么?

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

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

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

4

2 回答 2

15

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

Uncaught RangeError: Maximum call stack size exceeded

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

于 2014-09-08T18:14:11.860 回答
0

函数下提到的所有字段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'
                }
            }
        }
    }
});
于 2021-01-07T12:30:47.243 回答