Javascript 如何从html弹出窗口返回值

Javascript 如何从html弹出窗口返回值,javascript,jquery,asp.net-mvc,popup,modal-dialog,Javascript,Jquery,Asp.net Mvc,Popup,Modal Dialog,我需要一种简洁、干净的方法在asp.net mvc(+/-jquery或js)中实现这一点 用户单击WebFormA中的元素; 弹出网络表单B; 用户与网络表单B交互; 在关闭webform B时,可能通过submit按钮,webform a中的源元素将使用webform B中的值进行更新 谢谢。使用ASP.NET MVC,如果内容取决于初始页面上选择的值,我可能会在页面上呈现一个初始隐藏的DIV。我会使用jQueryUI对话框插件弹出对话框。该对话框可能包含一个提交回服务器的表单。您还可以使用

我需要一种简洁、干净的方法在asp.net mvc(+/-jquery或js)中实现这一点

用户单击WebFormA中的元素; 弹出网络表单B; 用户与网络表单B交互; 在关闭webform B时,可能通过submit按钮,webform a中的源元素将使用webform B中的值进行更新


谢谢。

使用ASP.NET MVC,如果内容取决于初始页面上选择的值,我可能会在页面上呈现一个初始隐藏的DIV。我会使用jQueryUI对话框插件弹出对话框。该对话框可能包含一个提交回服务器的表单。您还可以使用对话框的onclose处理程序复制对话框中输入的值,以便在页面的其余部分使用。如果您通过AJAX填充对话框,您可以让服务器生成HTML——比如呈现部分视图并返回它——或者返回json并在浏览器中动态生成对话框。

我已经求助于使用cookies。我发现这是唯一可靠的方法。我在对话框中使用GrayBox,因此对话框中有一个函数如下所示:

    function selectValue(id, name) {
      SetCookie("_someuniqueprefix_RetID", id);
      SetCookie("_someuniqueprefix_RetValue", name);
      parent.parent.GB_CURRENT.hide();
    }
然后,在我的呼叫页面中,我将启动一个对话框,该对话框在灰色框中显示一个分部:

$(function() {
    var selectUrl = '/_somecontroller/Select';
    // attach a method to the chooseButton to go and get a list of
    // contact persons to select from
    $("#chooseButton").click(function() {
        GB_showCenter('Select My thing', selectUrl, 500, 620, function() {
            var id = GetCookie("_someuniqueprefix_RetID");
            var value = GetCookie("_someuniqueprefix_RetValue");
            DeleteCookie("_someuniqueprefix_RetID", "/", "");
            DeleteCookie("_someuniqueprefix_RetValue", "/", "");
            $("#MyID").val(id);
            $("#MyName").val(value);
        });
    });

});
您还需要从web上获取SetCookie和GetCookie的函数


希望对您有所帮助

您可以使用弹出窗口中的javascript通过window.opener调用opener上的函数。因此,当用户单击submit按钮时,您的弹出窗口可以调用父页面上的函数将数据传回


我不确定您的要求是什么,但我使用ajax来实现这一点听起来有些过分。如果您只需要从弹出的webform中传递一些表单数据到opener webform,则无需调用服务器。

等待。MVC还是Webforms?挑一个。Webforms将使用iframe/postback意大利面。MVC更有可能通过ajax提交,并在父级中调用回调。