子窗口给父窗口赋值实现思路及案例演示
程序员文章站
2024-03-05 14:00:30
今天insus.net练习javascript,实现从父窗口打开一个子窗口,在子窗口处理一些结果之后,把结果赋值于父窗口的文本框内。可看效果: 在站点创建两个a...
今天insus.net练习javascript,实现从父窗口打开一个子窗口,在子窗口处理一些结果之后,把结果赋值于父窗口的文本框内。可看效果:
在站点创建两个aspx页面,一个是pagea.aspx另一个是pageb.aspx:
在pagea.aspx的<head>节点内,写javascript脚本,脚本有两个方法,一个是打开子窗口,一个是为文本框设值的方法:
<script type="text/javascript">
function popup(url) {
objsubwin = window.open(url, "popup", "toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=0,width=300,height=80");
objsubwin.focus();
}
function setvalue(val) {
var amount = document.getelementbyid('<% = textboxamount.clientid %>');
amount.value = val;
}
</script>
然后在<body>节点内,拉一个textbox和一个button:
amount:
<asp:textbox id="textboxamount" runat="server" enabled="false"></asp:textbox>
<asp:button id="button1" runat="server" text="call child window" onclientclick="popup('pageb.aspx')" />
ok,父页完成,接下来写pageb.aspx子页,还是先写javascript脚本,也有两个函数,一个是验证文本框只能输入数字,另一个是计算方法,在calc()方法内,有呼叫到父窗口的方法。
<script type="text/javascript">
function isnumeric(keycode) {
return ((keycode >= 48 && keycode <= 57) || keycode == 8)
}
function calc() {
if (window.opener != null && !window.opener.closed) {
var qty = document.getelementbyid('<% = textboxqty.clientid %>');
var price = document.getelementbyid('<% = textboxprice.clientid %>');
window.opener.setvalue(parseint(qty.value) * parseint(price.value));
}
}
</script>
在pageb.aspx的<body>节点内,拉两个文本框,一个button铵钮。
数量<asp:textbox id="textboxqty" runat="server" onkeydown="return isnumeric(event.keycode);" onpaste="return false;" width="50"></asp:textbox>
* 单价<asp:textbox id="textboxprice" runat="server" onkeydown="return isnumeric(event.keycode);" onpaste="return false;" width="50"></asp:textbox>
<asp:button id="button1" runat="server" text="calculate" onclientclick="calc()" />
另外附加,有关文本框验证的文章:
在站点创建两个aspx页面,一个是pagea.aspx另一个是pageb.aspx:
在pagea.aspx的<head>节点内,写javascript脚本,脚本有两个方法,一个是打开子窗口,一个是为文本框设值的方法:
复制代码 代码如下:
<script type="text/javascript">
function popup(url) {
objsubwin = window.open(url, "popup", "toolbar=no,scrollbars=no,location=no,statusbar=no,menubar=no,resizable=0,width=300,height=80");
objsubwin.focus();
}
function setvalue(val) {
var amount = document.getelementbyid('<% = textboxamount.clientid %>');
amount.value = val;
}
</script>
然后在<body>节点内,拉一个textbox和一个button:
复制代码 代码如下:
amount:
<asp:textbox id="textboxamount" runat="server" enabled="false"></asp:textbox>
<asp:button id="button1" runat="server" text="call child window" onclientclick="popup('pageb.aspx')" />
ok,父页完成,接下来写pageb.aspx子页,还是先写javascript脚本,也有两个函数,一个是验证文本框只能输入数字,另一个是计算方法,在calc()方法内,有呼叫到父窗口的方法。
复制代码 代码如下:
<script type="text/javascript">
function isnumeric(keycode) {
return ((keycode >= 48 && keycode <= 57) || keycode == 8)
}
function calc() {
if (window.opener != null && !window.opener.closed) {
var qty = document.getelementbyid('<% = textboxqty.clientid %>');
var price = document.getelementbyid('<% = textboxprice.clientid %>');
window.opener.setvalue(parseint(qty.value) * parseint(price.value));
}
}
</script>
在pageb.aspx的<body>节点内,拉两个文本框,一个button铵钮。
复制代码 代码如下:
数量<asp:textbox id="textboxqty" runat="server" onkeydown="return isnumeric(event.keycode);" onpaste="return false;" width="50"></asp:textbox>
* 单价<asp:textbox id="textboxprice" runat="server" onkeydown="return isnumeric(event.keycode);" onpaste="return false;" width="50"></asp:textbox>
<asp:button id="button1" runat="server" text="calculate" onclientclick="calc()" />
另外附加,有关文本框验证的文章:
上一篇: php解析base64数据生成图片的方法