多个jQuery帖子不起作用
问题:多个jQuery帖子不起作用,jquery,asp.net-mvc,Jquery,Asp.net Mvc,问题: 在使用jQuery的ASP.NET MVC项目中,该函数很少返回数据,而我希望它总是返回数据 问题: 为什么我的.post()函数很少激活成功回调函数?即使每个post返回的状态代码为200 OK 详细信息: 我在ASP.NET cshtml视图中定义了10个空跨距。在html中,每个跨度后面都有一个脚本,该脚本调用一个名为ShowConstraints()的javascript函数: ShowConstraints()函数如下所示: function ShowConstraints(o
在使用jQuery的ASP.NET MVC项目中,该函数很少返回数据,而我希望它总是返回数据 问题:
为什么我的
.post()
函数很少激活成功回调函数?即使每个post返回的状态代码为200 OK
详细信息:
我在ASP.NET cshtml视图中定义了10个空跨距。在html中,每个跨度后面都有一个脚本,该脚本调用一个名为ShowConstraints()
的javascript函数:
ShowConstraints()
函数如下所示:
function ShowConstraints(outputId) {
outputEl = "#" + outputId;
$(outputEl).html("Calculating info...");
$.post("/TestURL/TestPost", function (data) {
$(outputEl).html(data);
});
}
从/TestURL/TestPost
返回的值总是返回的代码>
我知道当跨距显示“计算信息…”时,已成功调用过帐函数。我知道当跨度变为显示“Returned!”时,出现了一个成功的帖子
但是,在运行时,只有一个或两个跨距显示“Returned!”。其余部分显示“计算信息…”
作为补充信息,当我调试javascript并逐步执行时,一切都按预期进行,所有跨度都显示“Returned!”
非常感谢。我真的不建议从HTML中执行这样的代码。这必然会导致不一致,尤其是使用多个
标记进行多个调用时
您应该在页面加载时从JavaScript代码的主要部分执行它,例如:
// On the page load
$(document).ready(function() {
// Get the spans that we want to loop through
$('span.mySpans').each(function(index, value) {
var outputId = $(this).attr('id');
ShowConstraints(outputId);
});
});
<span class="mySpans" id="span0"></span>
<span class="mySpans" id="span1"></span>
<span class="mySpans" id="span2"></span>
<span class="mySpans" id="span3"></span>
使用类似以下内容的HTML:
// On the page load
$(document).ready(function() {
// Get the spans that we want to loop through
$('span.mySpans').each(function(index, value) {
var outputId = $(this).attr('id');
ShowConstraints(outputId);
});
});
<span class="mySpans" id="span0"></span>
<span class="mySpans" id="span1"></span>
<span class="mySpans" id="span2"></span>
<span class="mySpans" id="span3"></span>
最有可能发生的情况是,在返回部分信息时,您一次调用了一堆信息
outputEl = "#" + outputId;
现在设置为原始输出以外的其他值。
您可以尝试延迟这些函数,使它们不会同时调用,或者尝试将它们作为回调函数链接起来 事实上,它在调试时工作,这听起来像是一个异步问题。。。即使在更正引号格式时也是如此。尝试更新该变量,使其在每个函数调用的范围内都是新的。感谢您对答案进行多次编辑,以尝试跟踪此问题。不幸的是,即使更改为在$(document)下执行。准备好了.each
和一起循环,我仍然遇到同样的问题。嗯,当我使用.each()
按元素类型循环,而不是按类循环时,实际上似乎工作正常。我会再努力的。渴望看到您在上一篇评论中提到的jquery解决方案。现在似乎正在工作。我会记下答案的。谢谢