我在TD中有一个图标

<tr>
   <td><input type="checkbox" class="cd" value="'+currPat.id+'"/></td>
   <td><b>' + currPat.question + '</b><input type="text" class="saveEdit" value="'+currPat.question+'" style="display:none" /><i class="glyphicon glyphicon-edit pull-right" onclick="editable(this)"></i><i class="glyphicon glyphicon-save pull-right" style="display:none" onclick="saveEdit(this)"></i><i class="glyphicon glyphicon-trash pull-right" onclick="deleteQuestion('+currPat.id+')"></i></td>
   <td>
      <select name="questionType" id="questionType" class="qType QSelect">
         <option value="">--Select--</option>
      </select>
   </td>
   <td width="35%" class="Fsize12 out" id=a'+ currPat.id +'><a href="#" class="checkbox-inline" onclick="getModal(this)">Get Options</a></td>
   <td><input type=hidden id=optionInputa'+currPat.id+' type=text/></td>
</tr>


在上面的td中,有一个图标<i class="glyphicon glyphicon-save pull-right" style="display:none" onclick="saveEdit(this)"></i>和这个saveEdit函数

function saveEdit(qid)
    {
        var questionName=$('.saveEdit').val();
        alert(questionName);
        $.ajax({
            type: "POST",
            url: projectUrl+"saveEdit",
            data:{question:questionName,questionID:qid},
            success:function (data1) {
                location.reload();
            }
});
    }


每当我单击保存编辑图标时,就会出现以下错误

Uncaught RangeError: Maximum call stack size exceeded


控制到警报线

var questionName=$('.saveEdit').val();
            alert(questionName);


因为我发出警报,但是之后出现错误并且它不会将数据发送到服务器

有人可以告诉我可能是什么问题吗?

最佳答案

当您的函数(递归或带有循环)导致无限循环时,总是会出现此错误。您的函数(saveEdit)极有可能导致某种无限循环,并且控制台会引发异常。

我将赌注押在您的saveEdit函数上,它被无休止地递归调用,这就是您收到错误的原因。

关于javascript - 未捕获的RangeError:浏览器控制台中超出了最大调用堆栈大小,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23991629/

10-09 15:10