Jquery 如何在MVC中单击按钮时添加确认弹出窗口
这就是我正在努力实现的目标 1) 当用户单击“保存”时,将出现一个弹出窗口 2) 弹出窗口将显示“是否要执行XYZ”。是继续,否返回屏幕,无任何内容 3) 如果没有,请关闭弹出窗口。我有jquery功能来检测是否点击了取消按钮,弹出窗口将被关闭。 4) 如果是,则调用ajax来执行。在Ajax之后执行第二次操作 如何处理第四个问题。ajax是异步函数。我需要完成它来完成第二个功能 有什么建议?我不想偏离设计太多(除非我别无选择),因为我必须遵循一些标准 谢谢 伪码Jquery 如何在MVC中单击按钮时添加确认弹出窗口,jquery,asp.net-mvc,asp.net-ajax,Jquery,Asp.net Mvc,Asp.net Ajax,这就是我正在努力实现的目标 1) 当用户单击“保存”时,将出现一个弹出窗口 2) 弹出窗口将显示“是否要执行XYZ”。是继续,否返回屏幕,无任何内容 3) 如果没有,请关闭弹出窗口。我有jquery功能来检测是否点击了取消按钮,弹出窗口将被关闭。 4) 如果是,则调用ajax来执行。在Ajax之后执行第二次操作 如何处理第四个问题。ajax是异步函数。我需要完成它来完成第二个功能 有什么建议?我不想偏离设计太多(除非我别无选择),因为我必须遵循一些标准 谢谢 伪码 @using (Html.Be
@using (Html.BeginForm("action1", "controller1", FormMethod.Post, new { id = "form1" }))
{
@* various controls*@
<input type="submit" name="save1" id="Save1" value="Save" onclick="DoXY(event);" />
}
<script type="text/javascript">
function DoXY(e) {
if (DoX())
Doy();
}
function DoX()
{
$.post('@(Url.Action("funcX", "controller1"))', postData, function (result) {
if (result.Result != 'True')
{
//what to do, I know return false does not work
}
else
{
//what to do, I know return true does not work
}
});
function DoY()
{
//do something
$('#form1').submit(); //this will continue to next action
}
}
</script>
@使用(Html.BeginForm(“action1”,“controller1”,FormMethod.Post,new{id=“form1”}))
{
@*各种控制*@
}
函数DoXY(e){
if(DoX())
Doy();
}
函数DoX()
{
$.post('@(Url.Action(“funcX”,“controller1”))),postData,函数(结果){
如果(result.result!=“True”)
{
//怎么办,我知道归假不管用
}
其他的
{
//怎么办,我知道还真不行
}
});
函数DoY()
{
//做点什么
$(“#form1”).submit();//这将继续执行下一个操作
}
}
只要在需要的地方调用DoX()中的DoY()
如果您的标准不允许这样做,您可以向DoX()传递匿名回调函数,如下所示:
然后在DoX()中,您只需调用匿名函数,并将结果作为参数:
function DoX(callback)
{
$.post('@(Url.Action("funcX", "controller1"))', postData, function (result) {
callback(result.Result == 'True');
});
}
那么,为什么ajax调用成功后不能执行Doy()?感谢您的建议。我没想到什么,汉克斯。明白了。我需要回电话来解决这个问题。很高兴我能帮上忙。
function DoX(callback)
{
$.post('@(Url.Action("funcX", "controller1"))', postData, function (result) {
callback(result.Result == 'True');
});
}