从父级 window 获取复选框值到 javascript 中的弹出 window
Get checkbox value from parent window into pop up window in javascript
我正在尝试将父 JSP 填写的表单字段显示到弹出窗口中,以通知用户填写了多少表单。
到目前为止,我只能显示文本字段值。我无法显示复选框 values.Below 是我编写的代码示例。我不知道为什么它不起作用。
Parent.jsp
Name: <input type="text" id="name"/>
Gender: Male<input type="checkbox" name="gender" id="male"/>
Female<input type="checkbox" name="gender" id="female"/>
<a href="PopUp.jsp" target="_blank">View</a>
PopUp.jsp
<script>
function setThis(){
document.getElementById("name").value=window.opener.document.getElementById("name").value;
if(window.opener.document.getElementById("male").checked)
document.getElementById("male").checked=true;
if(window.opener.document.getElementById("female").checked)
document.getElementById("female").checked=true;
}
</script>
<body onload="setThis();">
Name: <input type="text" id="name"/>
Gender: Male<input type="checkbox" name="gender" id="male"/>
Female<input type="checkbox" name="gender" id="female"/>
</body>
我认为如果您使用 window.open 打开弹出窗口,您的 window.opener 应该可以正常工作。
这是一个非常粗略的示例,它将从 parent 复制复选框 html。
Parent (try.html)
<html>
<script>
function openpopup() {
window.open('try2.html');
return false;
}
</script>
<body>
<form>
<a href="" onclick="javascript:return openpopup()">popup</a>
<input id='cb' type=checkbox>
</form>
</body>
</html>
Child 页 (try2.html)
function loaded() {
if(window.opener) {
document.getElementById('tb').value = window.opener.document.getElementById("cb").outerHTML
}
}
</script>
<body onload="loaded()">
<form>
<input type=text id=tb>
</form>
</body>
</html>
使用您的代码稍作修改(查看 href link),这段代码对我有用。
<html>
<script>
function openpopup() {
window.open('try2.html');
return false;
}
</script>
<body>
<form>
Name: <input type="text" id="name"/>
Gender: Male<input type="checkbox" name="gender" id="male"/>
Female<input type="checkbox" name="gender" id="female"/><br />
<a href="" onclick="javascript:return openpopup()">View</a>
</form>
和我的try2.html(你的popup.jsp)
<html>
<script>
function setThis(){
document.getElementById("name").value=window.opener.document.getElementById("name").value;
if(window.opener.document.getElementById("male").checked)
document.getElementById("male").checked=true;
if(window.opener.document.getElementById("female").checked)
document.getElementById("female").checked=true;
}
</script>
<body onload="setThis()">
<form>
Name: <input type="text" id="name"/>
Gender: Male<input type="checkbox" name="gender" id="male"/>
Female<input type="checkbox" name="gender" id="female"/>
</form>
</body>
</html>
话虽如此,我已避免使用弹出窗口 windows,而是在页面弹出对话框中使用。大多数时候我使用 JQuery UI 对话框 http://jqueryui.com/dialog/
我正在尝试将父 JSP 填写的表单字段显示到弹出窗口中,以通知用户填写了多少表单。 到目前为止,我只能显示文本字段值。我无法显示复选框 values.Below 是我编写的代码示例。我不知道为什么它不起作用。
Parent.jsp
Name: <input type="text" id="name"/>
Gender: Male<input type="checkbox" name="gender" id="male"/>
Female<input type="checkbox" name="gender" id="female"/>
<a href="PopUp.jsp" target="_blank">View</a>
PopUp.jsp
<script>
function setThis(){
document.getElementById("name").value=window.opener.document.getElementById("name").value;
if(window.opener.document.getElementById("male").checked)
document.getElementById("male").checked=true;
if(window.opener.document.getElementById("female").checked)
document.getElementById("female").checked=true;
}
</script>
<body onload="setThis();">
Name: <input type="text" id="name"/>
Gender: Male<input type="checkbox" name="gender" id="male"/>
Female<input type="checkbox" name="gender" id="female"/>
</body>
我认为如果您使用 window.open 打开弹出窗口,您的 window.opener 应该可以正常工作。 这是一个非常粗略的示例,它将从 parent 复制复选框 html。 Parent (try.html)
<html>
<script>
function openpopup() {
window.open('try2.html');
return false;
}
</script>
<body>
<form>
<a href="" onclick="javascript:return openpopup()">popup</a>
<input id='cb' type=checkbox>
</form>
</body>
</html>
Child 页 (try2.html)
function loaded() {
if(window.opener) {
document.getElementById('tb').value = window.opener.document.getElementById("cb").outerHTML
}
}
</script>
<body onload="loaded()">
<form>
<input type=text id=tb>
</form>
</body>
</html>
使用您的代码稍作修改(查看 href link),这段代码对我有用。
<html>
<script>
function openpopup() {
window.open('try2.html');
return false;
}
</script>
<body>
<form>
Name: <input type="text" id="name"/>
Gender: Male<input type="checkbox" name="gender" id="male"/>
Female<input type="checkbox" name="gender" id="female"/><br />
<a href="" onclick="javascript:return openpopup()">View</a>
</form>
和我的try2.html(你的popup.jsp)
<html>
<script>
function setThis(){
document.getElementById("name").value=window.opener.document.getElementById("name").value;
if(window.opener.document.getElementById("male").checked)
document.getElementById("male").checked=true;
if(window.opener.document.getElementById("female").checked)
document.getElementById("female").checked=true;
}
</script>
<body onload="setThis()">
<form>
Name: <input type="text" id="name"/>
Gender: Male<input type="checkbox" name="gender" id="male"/>
Female<input type="checkbox" name="gender" id="female"/>
</form>
</body>
</html>
话虽如此,我已避免使用弹出窗口 windows,而是在页面弹出对话框中使用。大多数时候我使用 JQuery UI 对话框 http://jqueryui.com/dialog/