Javascript 函数调用中的函数中的函数未捕获错误:最大调用堆栈超过
当我从函数中调用我的函数时,jquery中的代码有问题。它显示一条循环警报消息和一个错误,上面写着“未捕获错误:最大堆栈调用超过” 这是我的密码: @html:Javascript 函数调用中的函数中的函数未捕获错误:最大调用堆栈超过,javascript,jquery,asp.net-mvc-3,Javascript,Jquery,Asp.net Mvc 3,当我从函数中调用我的函数时,jquery中的代码有问题。它显示一条循环警报消息和一个错误,上面写着“未捕获错误:最大堆栈调用超过” 这是我的密码: @html: <div class="main"> @using (Html.BeginForm("AvailabilitySave", "Worker", FormMethod.Post, new { id = "AvailabilityForm" })) { <inpu
<div class="main">
@using (Html.BeginForm("AvailabilitySave", "Worker", FormMethod.Post, new { id = "AvailabilityForm" }))
{
<input type="hidden" id="availabilityId" name="workerId" value="@workerId" />
<p>
<label for="dllAvailableDay">
<abbr title="This is a required field.">
<em><font color="red">*</font></em></abbr>
Available Day</label>
<span>
@Html.DropDownList("dllAvailableDay", new SelectList(ViewBag.availableDayList, "ID", "Display_Value", workerAvailableDay), "[Please Select]",
new Dictionary<string, object>
{
{"class","validate[required] inputLong"}
})
</span>
</p>
<p>
<label for="TpStartTime">
<abbr title="This is a required field.">
<em><font color="red">*</font></em></abbr>
Start Time</label>
<span>
<input id="tpStartTime" name ="tpStartTime" value="@workerStartTime"
style="padding:0 0 0 0 !important" />
</span>
</p>
<p>
<label for="TpEndTime">
<abbr title="This is a required field.">
<em><font color="red">*</font></em></abbr>
End Time</label>
<span>
<input id="tpEndTime" name ="tpEndTime" value="@workerEndTime"
style="padding:0 0 0 0 !important"/>
</span>
</p>
<p>
<label>
Anytime</label>
<span>
<input type="checkbox" name="chAnytime" id="chAnytime" value="true" checked="checked" />
</span>
</p>
<p>
<span>
<input type="submit" id="addAvailBtn" class="styledButton" value="Add" />
</span>
</p>
}
</div>
我的情况是,当您单击“提交”按钮时,我想放置一条消息,但它不会保存以防止重复输入
请帮我解决这个问题
谢谢您确定这是触发堆栈爆炸的代码吗?这里似乎没有什么东西能触发它。您能提供一个堆栈爆炸的JSFIDLE吗?谢谢这里唯一的嫌疑犯是
$(this).focus()代码>-您是否有关注这些元素的侦听器,这些元素可能会使脚本陷入循环?@pawel我没有,先生。当我的剑道网格中有相同的数据时,警报消息会循环出现。例如,如果我的网格中有3个具有相同值的数据,当我添加具有相同值的新数据时,警报消息会弹出3次。请提供发生此情况的JSIDLE或url,以便我们可以对其进行调试。我无法提供JSIDLE,因为我的数据库。。。我无法链接它
$("#AvailabilityForm").on('submit', function (e)
{
var gvDetDDLs = $('#availabilityGrid').find("input[name=dllEditAvailableDay]");
$.each(gvDetDDLs, function () {
var duplicateExists = false;
var ddlDay = $("#dllAvailableDay option:selected").text();
var currVal = $(this).val();
gvDetDDLs.not(this).each(function () {
e.stopPropagation();
if (ddlDay == currVal) {
duplicateExists = true;
alert("Duplicate entry is not allowed");
$(this).focus();
return false;
}
}
);
}
);
return true;
}
);