【发布时间】:2015-02-18 07:19:14
【问题描述】:
这是我的代码:
$("#MainContent_btnSave").click(function () {
if (($("#MainContent_txtFunc").val() == "") || ($("#MainContent_cmbLoc").val() == "")) {
alert("Please fill options.");
return false;
}
else {
$("#msgbox-loading").show();
$.ajax({
type: "POST",
url: "Ajax.aspx",
data: { func: "getexist", catfunc: $("#MainContent_txtFunc").val(), catdes: $("#MainContent_txtDesc").val() },
success: function (data) {
var parsed = $(data);
var exist = parsed.filter("[id=exist]").text();
if (exist == "NO") {
return true;
}
if (exist == "Yes") {
alert("already defined.");
$("#msgbox-loading").hide();
return false;
}
},
error: function (xhr, ajaxOptions, thrownError) {
$("#msgbox-loading").hide();
HidePopup('popup');
alert(xhr.status + " " + thrownError);
}
});
};
});
我的代码是强制检查,如果强制为空,则会显示错误消息,或者如果强制不为空,则首先显示加载,然后运行 Ajax。
运行 Ajax 后,我希望页面发送“否”运行按钮回发,如果页面发送“是”停止按钮回发。
但不幸的是,在运行 ajax 和页面发送“是”运行按钮后发回。
请帮忙。
【问题讨论】:
-
Ajax 是异步的。你不能像这样返回值。
-
我可以通过ajax发送数据并刷新页面吗?
-
是的,你可以。但在您的情况下,您可以使用 $.Deferred 对象。更多信息在这里api.jquery.com/category/deferred-object
-
这个小提琴 jsfiddle.net/jgesfjzz/1 演示了如何使用 $.Deferred 来解决您的问题。
-
ajax方法退出后是否立即回发? if(exist =='YES') 你能拿到代码吗?
标签: javascript jquery asp.net ajax asp.net-ajax