Javascript 在ASP.NET MVC 4视图中将数据从父窗口传递到弹出(子)窗口
目前,我被要求使用ASP.NET MVC构建一个表单,其要求如下:Javascript 在ASP.NET MVC 4视图中将数据从父窗口传递到弹出(子)窗口,javascript,c#,jquery,html,asp.net-mvc,Javascript,C#,Jquery,Html,Asp.net Mvc,目前,我被要求使用ASP.NET MVC构建一个表单,其要求如下: 该表单具有用于插入姓名、性别和出生日期等数据的文本框 单击“提交”按钮后,将出现一个弹出窗口 父窗口窗体中的所有数据都传输到弹出窗口(子窗口),并与父窗口中的视图完全相同 父窗口和弹出窗口之间的区别在于,必须禁用弹出窗口中的文本框,同时仍保留父窗口中的数据值,并且我必须删除弹出窗口中的“查看”按钮 父窗口和弹出窗口必须只有一个CSHTML文件(例如,不允许使用parent.CSHTML和popup.CSHTML) 以下是一些图片
//将弹出窗口居中,从https://stackoverflow.com/questions/4068373/center-a-popup-window-on-screen
功能弹出窗口(url、标题、w、h){
var dualScreenLeft=window.screenLeft!=未定义?window.screenLeft:screen.left;
var dualScreenTop=window.screenTop!=未定义?window.screenTop:screen.top;
var width=window.innerWidth?window.innerWidth:document.documentElement.clientWidth?document.documentElement.clientWidth:screen.width;
var height=window.innerHeight?window.innerHeight:document.documentElement.clientHeight?document.documentElement.clientHeight:screen.height;
左变量=((宽度/2)-(宽度/2))+dualScreenLeft;
变量顶部=((高度/2)-(高度/2))+双屏幕顶部;
var newWindow=window.open(url,标题,'scrollbars=yes,宽度='+w+',高度='+h+',顶部='+top+',左侧='+left);
//将焦点放在新窗口上
if(window.focus){
newWindow.focus();
}
}
姓名:
性别:
男性
女性
出生日期:
您可以在window.open之后添加此代码
newWindow.onload = function () {
this.document.getElementById('txtPopup').value = document.getElementById('txt').value;
}
替换txtPopup,您必须输入弹出窗口的id。您使用的是视图模型吗?实际上,您只需要像在主窗体中一样将模型属性绑定到输入元素。弹出窗口仍然是页面DOM的一部分。请查看引导模式弹出窗口。@Crowcoder您好,谢谢您的建议。我必须让你知道,我还是个新手,对ASP.NETMVC非常缺乏经验,不,我还没有建立一个模型,因为我认为在使用Javascript时进行调整已经足够了。我一定会查一查你的建议。再次感谢!嗨,我只是复制了一份,奇怪的是代码现在不起作用了。您确定
newWindow.onload
运行吗?我试图调试它,但它立即跳过了this.document.getElementById('txtPopup').value=document.getElementById('txt').value代码>部分。嗨,很抱歉回答了这么长时间。你解决问题了吗?