Javascript 有没有办法将OnSuccess脚本添加到我的Ajax调用中
我有以下脚本:Javascript 有没有办法将OnSuccess脚本添加到我的Ajax调用中,javascript,jquery,razor,Javascript,Jquery,Razor,我有以下脚本: $.ajax({ url: '/Switch/showOptions', data: { switchid: "331", }, type: 'get', success: function (html) { $('#showoptions').html(html); $("#showoptions").dialog("show"); //This could also be dialog(
$.ajax({
url: '/Switch/showOptions',
data: {
switchid: "331",
},
type: 'get',
success: function (html) {
$('#showoptions').html(html);
$("#showoptions").dialog("show"); //This could also be dialog("open") depending on the version of jquery ui.
OnSuccess('createsuccess')
},
});
我试图做的是在显示对话框后启动一个OnSuccess
脚本,当前我得到一个未定义OnSuccess的异常?那么,有人能建议我如何为我的Ajax调用启动一个OnSuccess
脚本吗?尝试使用以下方法:
提供一种基于一个或多个回调函数执行回调函数的方法
对象,通常是表示异步事件的延迟对象
因此,考虑到这一点,下面是重新编写的代码,以使用jQuery.when()
:
或者,如果您只是想测试这个概念,请将jQuery.when()
更改为:
$.when(ajax_action).then(function(data, textStatus, jqXHR) { alert('I am a success!'); });
编辑:尝试解决原始海报请求的最后一次编辑。他们想启动一个名为createsuccess
的脚本,所以只需执行以下操作:
$.when(ajax_action).then(function(data, textStatus, jqXHR) { createsuccess(); });
如果您添加了一个;在你成功的电话之后。这不是要触发的事件,而是将在前两条语句之后执行的函数
function OnSuccess(p_Success) {
alert('it worked!');
}
$.ajax({
url: '/Switch/showOptions',
data: {
switchid: "331",
},
type: 'get',
success: function (html) {
$('#showoptions').html(html);
$("#showoptions").dialog("show"); //This could also be dialog("open") depending on the version of jquery ui.
OnSuccess('createsuccess');
},
});
什么是
OnSuccess
-您已经在使用success
回调?什么是OnSuccess
?它是某个地方的函数吗?它是在哪里定义的,你能展示其余的代码吗?它是否像创建一个函数并调用它一样简单,这是你的问题吗?你能展示你是如何声明OnSuccess()的吗?当我在asp.net mvc中使用Ajax助手时,我可以选择定义OnSuccess、OnComplete、Onfailure等函数,等等,所以我试图在这里实现同样的结果。但我仍然得到以下异常0x800a1391-Microsoft JScript运行时错误:“OnSuccess”是undefined@johnG如果OnSuccess
未定义,我不清楚您试图做什么,因为您的操作已经在jQuerysuccess:
回调的范围内发生OnSuccess
似乎是您想要使用的一个单独的JavaScript函数,因此这就是我的解决方案所依赖的。我曾经使用过ajax.ActionLink和ajax.Beginfounds,它们是asp.net mvc使用的ajax帮助程序。在ajax.actionlink中,我可以定义一个onsuccess脚本,在ajaxcall成功时触发。因此,我希望我的ajax调用有类似的脚本。@johnG 100%不清楚内置ajax:success
或我的解决方案如何解决这个问题。感谢帮助,基本上这对我的$.when(ajax_action)有效。然后(函数(数据){createsuccess(数据);});如果你读了我的答案和评论,原来的海报就被弄糊涂了。而不是OnSuccess('createsuccess')
他们真的想要createsuccess()
的行为。混乱但澄清了。
function OnSuccess(p_Success) {
alert('it worked!');
}
$.ajax({
url: '/Switch/showOptions',
data: {
switchid: "331",
},
type: 'get',
success: function (html) {
$('#showoptions').html(html);
$("#showoptions").dialog("show"); //This could also be dialog("open") depending on the version of jquery ui.
OnSuccess('createsuccess');
},
});