通过调用 ASP.NET 按钮单击从 jQuery 模态对话框回发
Posted
技术标签:
【中文标题】通过调用 ASP.NET 按钮单击从 jQuery 模态对话框回发【英文标题】:Postback from jQuery Modal Dialog by invoking ASP.NET Button Click 【发布时间】:2015-01-20 04:18:02 【问题描述】:我有一个 ASP.NET Web 表单应用程序。当用户单击提交按钮时,我试图显示一个模态对话框以进行确认。我正在使用按钮的 OnClientClick 来调用 javascript 函数。如果页面验证成功,该函数将打开模式对话框。当用户单击模式对话框的“是”按钮时,我希望提交表单。我尝试了 _doPostback(btn, 'OnClick')、btn.trigger('click') 和 btn.click()。我可以看到模态对话框并且取消按钮有效。但是当我点击是时,页面没有发布。请参阅下面的代码并帮助我。谢谢!
ASPX:
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click"
OnClientClick="clientValidate();return false;"/>
<div id="alert" style="display: none">
Are you sure you want to submit?
</div>
JavaScript:
$(document).ready(function ()
$('#alert').dialog(
title: 'Confirm',
modal: true,
autoOpen: false,
buttons:
Yes: function ()
var btn = document.getElementById('<%=btnSubmit.ClientID%>');
//_doPostback(btn, 'OnClick');
//btn.trigger('click');
//btn.click();
// Above three didn't work! :(
,
Cancel: function ()
$(this).dialog('close');
);
);
function clientValidate()
var btnsubmit = document.getElementById(<%=btnSubmit.ClientID%>);
if (Page_ClientValidate())
$('#alert').dialog('open');
更新:
将_doPostBack()
更正为__doPostBack()
。该页面现在发布。但是 btnSubmit_Click 没有被调用。
【问题讨论】:
【参考方案1】:您的 doPostBack 调用是错误的。它应该是 __doPostBack() 而不是 _doPostBack() - 应该有两个下划线,你有一个。这可能是它开始失败的原因。
试试这个:
buttons:
Yes: function ()
var btn = document.getElementById('<%=btnSubmit.ClientID%>');
__doPostback(btn, 'OnClick');
,
更新
试试这个:
在你的代码后面添加这个页面加载函数
if (Page.IsPostBack)
var param = Request["__EVENTARGUMENT"];
if (target == "Submit")
btnSubmit_Click(sender, e);
在你的 Javascript 中你会这样做
__doPostBack(btn, 'Submit');
应该可以的。
【讨论】:
糟糕。我现在更正了。谢谢!页面正在发布,但未调用 btnSubmit_Click。我该怎么做? @Code.me 我已经更新了帖子以包括如何使用 __doPostBack 调用您的 btnSubmit_Click 事件。以上是关于通过调用 ASP.NET 按钮单击从 jQuery 模态对话框回发的主要内容,如果未能解决你的问题,请参考以下文章
asp.net 按钮单击未通过 jquery 在隐藏字段中触发大量数据
在 PostBack (ASP.NET) 上运行 jQuery 函数