Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/455.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_Javascript_Jquery_Twitter Bootstrap - Fatal编程技术网

未捕获范围错误:超过最大调用堆栈大小。javascript

未捕获范围错误:超过最大调用堆栈大小。javascript,javascript,jquery,twitter-bootstrap,Javascript,Jquery,Twitter Bootstrap,我需要一些帮助来找出这个错误的来源。根据控制台,它被抛出到jquery.min.js的这个函数中: function buildParams( prefix, obj, traditional, add ) { var name; if ( jQuery.isArray( obj ) ) { // Serialize array item. jQuery.each( obj, function( i, v ) { if ( traditional || rbr

我需要一些帮助来找出这个错误的来源。根据控制台,它被抛出到jquery.min.js的这个函数中:

function buildParams( prefix, obj, traditional, add ) {
var name;

if ( jQuery.isArray( obj ) ) {

    // Serialize array item.
    jQuery.each( obj, function( i, v ) {
        if ( traditional || rbracket.test( prefix ) ) {

            // Treat each array item as a scalar.
            add( prefix, v );

        } else {

            // Item is non-scalar (array or object), encode its numeric index.
            buildParams(
                prefix + "[" + ( typeof v === "object" && v != null ? i : "" ) + "]",
                v,
                traditional,
                add
            );
        }
    } );

} else if ( !traditional && jQuery.type( obj ) === "object" ) {

    // Serialize object item.
    for ( name in obj ) {
        buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
    }

} else {

    // Serialize scalar item.
    add( prefix, obj );
}
}
我认为这是一个特别的循环:

// Serialize object item.
for ( name in obj ) {
    buildParams( prefix + "[" + name + "]", obj[ name ], traditional, add );
}
我使用的是从bootstrap网站上得到的一个稍微修改过的模板,但是我显然没有修改这个文件,我假设它应该可以开箱即用。提交以下表单时触发错误:

<form name="sentMessage" id="contactForm" novalidate>
....
</form>

....
这是由js控制的

$("#contactForm input,#contactForm textarea").jqBootstrapValidation({
    preventSubmit: true,
    submitError: function($form, event, errors) {
        // additional error messages or events
    },
    submitSuccess: function($form, event) {
        event.preventDefault(); // prevent default submit behaviour
        // get values from FORM
        var firstName = $("#fname").val();
        var lastName = $("#lname").val();
        var email = $("#email").val();
        var cphone = $("#cphone").val();
        var comment = $("#comment").val();
        var address = $("#address").val();
        var city = $("#city").val();
        var zip = $("#zip").val();

        $.ajax({
            url: "iveTriedDifferentActionsHere",
            type: "POST",
            data: {
                fname: fname,
                lname: lname,
                cphone: cphone,
                email: email,
                comment: comment,
                address: address,
                city: city,
                zip: zip
            },
            cache: false,
            success: function() {
                // Success message
                $('#success').html("<div class='alert alert-success'>");
                $('#success > .alert-success').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                    .append("</button>");
                $('#success > .alert-success')
                    .append("<strong>Your message has been sent. </strong>");
                $('#success > .alert-success')
                    .append('</div>');

                //clear all fields
                $('#contactForm').trigger("reset");
            },
            error: function() {
                // Fail message
                $('#success').html("<div class='alert alert-danger'>");
                $('#success > .alert-danger').html("<button type='button' class='close' data-dismiss='alert' aria-hidden='true'>&times;")
                    .append("</button>");
                $('#success > .alert-danger').append("<strong>Sorry " + firstName + ", it seems that my mail server is not responding. Please try again later!");
                $('#success > .alert-danger').append('</div>');
                //clear all fields
                $('#contactForm').trigger("reset");
            },
        });
    },
    filter: function() {
        return $(this).is(":visible");
    },
});
$(“#contactForm输入,#contactForm文本区域”).jqBootstrapValidation({
对,,
submitError:函数($form、event、errors){
//其他错误消息或事件
},
submitSuccess:函数($form,event){
event.preventDefault();//防止默认提交行为
//从表单中获取值
var firstName=$(“#fname”).val();
var lastName=$(“#lname”).val();
var email=$(“#email”).val();
var cphone=$(“#cphone”).val();
var comment=$(“#comment”).val();
var address=$(“#address”).val();
var city=$(“#city”).val();
var zip=$(“#zip”).val();
$.ajax({
url:“IveTriedDifferenceshere”,
类型:“POST”,
数据:{
fname:fname,
lname:lname,
cphone:cphone,
电邮:电邮,,
评论:评论,,
地址:地址:,
城市:城市,,
拉链:拉链
},
cache:false,
成功:函数(){
//成功信息
$('#success').html(“”);
$('#success>.alert success').html(“×;”)
.附加(“”);
$(“#success>.alert success”)
.append(“您的邮件已发送。”;
$(“#success>.alert success”)
.附加(“”);
//清除所有字段
$('#contactForm')。触发器(“重置”);
},
错误:函数(){
//失败消息
$('#success').html(“”);
$('#success>.alert danger').html(“×;”)
.附加(“”);
$(“#success>.alert danger”).append(“对不起”+firstName+”,我的邮件服务器似乎没有响应。请稍后再试!”);
$(“#success>.alert danger”).append(“”);
//清除所有字段
$('#contactForm')。触发器(“重置”);
},
});
},
过滤器:函数(){
return$(this).is(“:可见”);
},
});

我知道这是很多代码,但它是最基本的。我似乎不知道是什么引起的。我尝试了不同的行动,不同的投入,但我的想法已经没有了。提前感谢您的帮助。

在哪里/如何调用
buildParams
?什么
obj
传递给函数?此数据是否包含循环引用(在任何级别)?并且您可能希望添加完整的stacktraceThanks以查看此数据。我一直在挖掘,它看起来可能与一个node_模块有关。在遇到障碍之前,摆脱浏览器同步使其在编译过程中更进一步,但它看起来仍然是节点模块。