有人用过lhgdialog的JS控件吗?我想post数据到弹窗上,不知道怎么发送数据

rd16 2013-07-08 01:54:34
项目地址:http://code.google.com/p/lhgdialog/downloads/list

我的父页很多文本框,我想POST数据到这个弹窗上,由于数据是给CS页面用的,所以不能用子窗口的JS来获取父页的文本框内容

父页一定用POST发送数据,而弹出窗口(子页面)一定要用 Request.Form("name") 来接收内容




我按官方的教程写JS脚本如下,都不知道怎么form action 到 test.aspx,我对javascript很陌生!!!
    function dlgopen1() {
$.dialog({
id: 'id001',
title: '确认订单',
width: 700,
height: 500,
lock: true,
max: false,
min: false,
content: 'url:test.aspx' //我想POST数据到test.aspx这个页面
});
}
...全文
816 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
rd16 2013-07-11
  • 打赏
  • 举报
回复
版主很牛啊,佩服。。。。。
未知数 2013-07-08
  • 打赏
  • 举报
回复
引用 9 楼 rd16 的回复:
[quote=引用 8 楼 wzs_xyz 的回复:] [quote=引用 5 楼 rd16 的回复:] [quote=引用 3 楼 wzs_xyz 的回复:] [quote=引用 1 楼 showbo 的回复:] 由于指定了id,弹出的iframe会自动加上name="id001"的属性,所以你的表头将target指向这个iframe就会自动提交到iframe里面了 <form action="提交到的url地址" target="id001">
好办法[/quote] 大牛,这样不行吧。[/quote] 哦,是会有点问题,这种做法需要iframe提前就存在,你可以先写一个iframe <form action="test.aspx" target="id001" id="form1"> <iframe id='id001' name='id001'></iframe> 要弹出层时提交表单 function dlgopen1() { $('#form1').submit(); $.dialog({ id: 'id001', title: '确认订单', width: 700, height: 500, lock: true, max: false, min: false, content: '#id001' // }); }[/quote] 不知道还有其它方法吗?这样不太好啊……。[/quote] 其他方法都需要用js了 1. ajax提交 用ajax将几个表单项值提交给服务端,服务端根据值返回相应的页面代码,(C#用Response.ReadRect),然后回调函数中将响应弹出来 2. 可以用js获取父页面标签 在子页面中用window.parent可以获取父页面window对象,进而获取到父页面的所有html值 如: var val1=$(window.parent.document).find('input[name=name1]').val(); 这句可以在子页面获取到父页面name为name1的文本框输入值 对你来说估计比上面说的更难
  • 打赏
  • 举报
回复
引用 8 楼 wzs_xyz 的回复:
[quote=引用 5 楼 rd16 的回复:] [quote=引用 3 楼 wzs_xyz 的回复:] [quote=引用 1 楼 showbo 的回复:] 由于指定了id,弹出的iframe会自动加上name="id001"的属性,所以你的表头将target指向这个iframe就会自动提交到iframe里面了 <form action="提交到的url地址" target="id001">
好办法[/quote] 大牛,这样不行吧。[/quote] 哦,是会有点问题,这种做法需要iframe提前就存在,你可以先写一个iframe <form action="test.aspx" target="id001" id="form1"> <iframe id='id001' name='id001'></iframe> 要弹出层时提交表单 function dlgopen1() { $('#form1').submit(); $.dialog({ id: 'id001', title: '确认订单', width: 700, height: 500, lock: true, max: false, min: false, content: '#id001' // }); }[/quote] iframe还没存在。。先打开对话框生成iframe,增加init事件,事件中再提交表单 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script src="http://elonan.com/test/jquery-1.7.2.min.js"></script> <script src="http://elonan.com/test/lhgdialog/lhgdialog.min.js?self=false"></script> <script type="text/javascript"> function dlgopen1() { $.dialog({ id: 'id001', title: '确认订单', width: 700, height: 500, lock: true, max: false, min: false, init: function () { document.postFrm.submit() }, content: 'url:about:blank' //这个地址随便设置,主要为是了生成iframe用的,为了不和服务器交互,设置为about:blank }); } </script> </head> <body> <form name="postFrm" action="http://elonan.com/test/test.asp" target="id001" method="post"> <input id="name" name="name" type="text" /> <br /> <input id="Button_open" type="button" onclick="javascript:dlgopen1();" value="post input到test.asp" name="Button_open" /> </form> </body> </html>
rd16 2013-07-08
  • 打赏
  • 举报
回复
引用 8 楼 wzs_xyz 的回复:
[quote=引用 5 楼 rd16 的回复:] [quote=引用 3 楼 wzs_xyz 的回复:] [quote=引用 1 楼 showbo 的回复:] 由于指定了id,弹出的iframe会自动加上name="id001"的属性,所以你的表头将target指向这个iframe就会自动提交到iframe里面了 <form action="提交到的url地址" target="id001">
好办法[/quote] 大牛,这样不行吧。[/quote] 哦,是会有点问题,这种做法需要iframe提前就存在,你可以先写一个iframe <form action="test.aspx" target="id001" id="form1"> <iframe id='id001' name='id001'></iframe> 要弹出层时提交表单 function dlgopen1() { $('#form1').submit(); $.dialog({ id: 'id001', title: '确认订单', width: 700, height: 500, lock: true, max: false, min: false, content: '#id001' // }); }[/quote] 不知道还有其它方法吗?这样不太好啊……。
未知数 2013-07-08
  • 打赏
  • 举报
回复
引用 5 楼 rd16 的回复:
[quote=引用 3 楼 wzs_xyz 的回复:] [quote=引用 1 楼 showbo 的回复:] 由于指定了id,弹出的iframe会自动加上name="id001"的属性,所以你的表头将target指向这个iframe就会自动提交到iframe里面了 <form action="提交到的url地址" target="id001">
好办法[/quote] 大牛,这样不行吧。[/quote] 哦,是会有点问题,这种做法需要iframe提前就存在,你可以先写一个iframe <form action="test.aspx" target="id001" id="form1"> <iframe id='id001' name='id001'></iframe> 要弹出层时提交表单 function dlgopen1() { $('#form1').submit(); $.dialog({ id: 'id001', title: '确认订单', width: 700, height: 500, lock: true, max: false, min: false, content: '#id001' // }); }
rd16 2013-07-08
  • 打赏
  • 举报
回复
引用 6 楼 wzs_xyz 的回复:
<form action="test.aspx" target="id001"> 这样就行了,数据会提交到test.aspx页面,响应会渲染到id001这个iframe(即弹出层)
测试脚本下载:http://elonan.com/test/test.rar 测试地址:http://elonan.com/test/test.htm 测试了真不行
未知数 2013-07-08
  • 打赏
  • 举报
回复
<form action="test.aspx" target="id001"> 这样就行了,数据会提交到test.aspx页面,响应会渲染到id001这个iframe(即弹出层)
rd16 2013-07-08
  • 打赏
  • 举报
回复
引用 3 楼 wzs_xyz 的回复:
[quote=引用 1 楼 showbo 的回复:] 由于指定了id,弹出的iframe会自动加上name="id001"的属性,所以你的表头将target指向这个iframe就会自动提交到iframe里面了 <form action="提交到的url地址" target="id001">
好办法[/quote] 大牛,这样不行吧。
rd16 2013-07-08
  • 打赏
  • 举报
回复
测试脚本下载:http://elonan.com/test/test.rar 测试地址:http://elonan.com/test/test.htm
未知数 2013-07-08
  • 打赏
  • 举报
回复
引用 1 楼 showbo 的回复:
由于指定了id,弹出的iframe会自动加上name="id001"的属性,所以你的表头将target指向这个iframe就会自动提交到iframe里面了 <form action="提交到的url地址" target="id001">
好办法
rd16 2013-07-08
  • 打赏
  • 举报
回复
引用 楼主 rd16 的回复:
项目地址:http://code.google.com/p/lhgdialog/downloads/list 我的父页很多文本框,我想POST数据到这个弹窗上,由于数据是给CS页面用的,所以不能用子窗口的JS来获取父页的文本框内容 父页一定用POST发送数据,而弹出窗口(子页面)一定要用 Request.Form("name") 来接收内容 我按官方的教程写JS脚本如下,都不知道怎么form action 到 test.aspx,我对javascript很陌生!!!
    function dlgopen1() {
            $.dialog({
                id: 'id001',
                title: '确认订单',
                width: 700,
                height: 500,
                lock: true,
                max: false,
                min: false,
                content: 'url:test.aspx' //我想POST数据到test.aspx这个页面
            });
        }
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script src="http://elonan.com/test/jquery-1.7.2.min.js"></script>
    <script src="http://elonan.com/test/lhgdialog/lhgdialog.min.js?self=false"></script>
    <script type="text/javascript">
        function dlgopen1() {
            $.dialog({
                id: 'id001',
                title: '确认订单',
                width: 700,
                height: 500,
                lock: true,
                max: false,
                min: false,
                content: 'url:http://elonan.com/test/test.asp' //我想POST数据到test.aspx这个页面
            });
        }
    </script>
</head>
<body>
<form action="http://elonan.com/test/test.asp" target="id001" method="post"> 
    <input id="name" name="name" type="text" />
    <br />
    <input id="Button_open" type="button" onclick="javascript:dlgopen1();" value="post input到test.asp"
        name="Button_open" />
</form>
</body>
</html>
测试脚本:http://elonan.com/test/test.rar 版主能帮我测试下吗?完全没有效果啊。
  • 打赏
  • 举报
回复
由于指定了id,弹出的iframe会自动加上name="id001"的属性,所以你的表头将target指向这个iframe就会自动提交到iframe里面了 <form action="提交到的url地址" target="id001">
  • 打赏
  • 举报
回复
刚才测试了下,兼容模式下document.createElement创建的对象没有name属性。而是增加了自定义属性submitName。。垃圾ie。。改成下面的,ie下直接覆盖原来的iframe。参考:document.createElement创建iframe在IE兼容模式无法指定target问题

        function dlgopen1() {
$.dialog({
id: 'id001',
title: '确认订单',
width: 700,
height: 500,
lock: true,
max: false,
min: false,
init: function () {
if (window.ActiveXObject) { //IE直接替换掉原来的iframe
var pNode = lhgdialog.list['id001'].iframe.parentNode;
pNode.removeChild(lhgdialog.list['id001'].iframe)//删除原来的iframe
$('<iframe name="id001" style="width:100%;height:100%;border:none 0;"></iframe>').appendTo(pNode);
}
document.postFrm.submit()

},
content: 'url:about:blank' //这个地址随便设置,主要为是了生成iframe用的,为了不和服务器交互,设置为about:blank
});
}


rd16 2013-07-08
  • 打赏
  • 举报
回复
引用 11 楼 wzs_xyz 的回复:
[quote=引用 9 楼 rd16 的回复:] [quote=引用 8 楼 wzs_xyz 的回复:] [quote=引用 5 楼 rd16 的回复:] [quote=引用 3 楼 wzs_xyz 的回复:] [quote=引用 1 楼 showbo 的回复:] 由于指定了id,弹出的iframe会自动加上name="id001"的属性,所以你的表头将target指向这个iframe就会自动提交到iframe里面了 <form action="提交到的url地址" target="id001">
好办法[/quote] 大牛,这样不行吧。[/quote] 哦,是会有点问题,这种做法需要iframe提前就存在,你可以先写一个iframe <form action="test.aspx" target="id001" id="form1"> <iframe id='id001' name='id001'></iframe> 要弹出层时提交表单 function dlgopen1() { $('#form1').submit(); $.dialog({ id: 'id001', title: '确认订单', width: 700, height: 500, lock: true, max: false, min: false, content: '#id001' // }); }[/quote] 不知道还有其它方法吗?这样不太好啊……。[/quote] 其他方法都需要用js了 1. ajax提交 用ajax将几个表单项值提交给服务端,服务端根据值返回相应的页面代码,(C#用Response.ReadRect),然后回调函数中将响应弹出来 2. 可以用js获取父页面标签 在子页面中用window.parent可以获取父页面window对象,进而获取到父页面的所有html值 如: var val1=$(window.parent.document).find('input[name=name1]').val(); 这句可以在子页面获取到父页面name为name1的文本框输入值 对你来说估计比上面说的更难[/quote] 谢谢wzs_xyz: lhgdialog提供了获取父页面值的API,但由于业务需求,我不能这样获取。因为JS的执行永远比后台Page_Load慢,而我要在Page_Load执行一些操作。
rd16 2013-07-08
  • 打赏
  • 举报
回复
引用 10 楼 showbo 的回复:
[quote=引用 8 楼 wzs_xyz 的回复:] [quote=引用 5 楼 rd16 的回复:] [quote=引用 3 楼 wzs_xyz 的回复:] [quote=引用 1 楼 showbo 的回复:] 由于指定了id,弹出的iframe会自动加上name="id001"的属性,所以你的表头将target指向这个iframe就会自动提交到iframe里面了 <form action="提交到的url地址" target="id001">
好办法[/quote] 大牛,这样不行吧。[/quote] 哦,是会有点问题,这种做法需要iframe提前就存在,你可以先写一个iframe <form action="test.aspx" target="id001" id="form1"> <iframe id='id001' name='id001'></iframe> 要弹出层时提交表单 function dlgopen1() { $('#form1').submit(); $.dialog({ id: 'id001', title: '确认订单', width: 700, height: 500, lock: true, max: false, min: false, content: '#id001' // }); }[/quote] iframe还没存在。。先打开对话框生成iframe,增加init事件,事件中再提交表单 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title></title> <script src="http://elonan.com/test/jquery-1.7.2.min.js"></script> <script src="http://elonan.com/test/lhgdialog/lhgdialog.min.js?self=false"></script> <script type="text/javascript"> function dlgopen1() { $.dialog({ id: 'id001', title: '确认订单', width: 700, height: 500, lock: true, max: false, min: false, init: function () { document.postFrm.submit() }, content: 'url:about:blank' //这个地址随便设置,主要为是了生成iframe用的,为了不和服务器交互,设置为about:blank }); } </script> </head> <body> <form name="postFrm" action="http://elonan.com/test/test.asp" target="id001" method="post"> <input id="name" name="name" type="text" /> <br /> <input id="Button_open" type="button" onclick="javascript:dlgopen1();" value="post input到test.asp" name="Button_open" /> </form> </body> </html> [/quote] 十分感谢版主的帮助,经过用ietest测试,你的代码在IE6/IE7有问题,IE9/IE10的兼容性视图下也不能正常运行 点击按钮后,会自动弹出二个页面 测试地址:http://www.elonan.com/test/test.htm

52,792

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 Ajax
社区管理员
  • Ajax
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧