JS调用弹出框并获取返回值

在Web开发中不免会遇到这种问题,在页面中单击按钮调用事件弹出一个对话框,然后选中对话框中的数据,并返回到当前页。
1、首先创建一个方法进行调用弹出框
function selectItem(obj){
var url="/ycportal/Item.jsp?url=contentblock.block.${requestmap.blockkey}.view.list.whseitem";
var str = window.showModalDialog(url,window,"status=off","dialogWidth=140px;dialogHeight=100px");
if (str!=undefined && str.length>0)
{
var dataRow = obj.parentElement.parentElement;
dataRow.cells[0].children[1].value = str[0][0];
dataRow.cells[1].children[0].value = str[0][1];
dataRow.cells[2].children[0].value = str[0][2];
dataRow.cells[3].children[0].value = 1;
}
}
解释:obj为本身对象,是个Button,该对象放在一个表格中,调用方式为:
定义变量str来接收弹出框的返回值
2、组织弹出框页面内容
<%@ page contentType="text/html;charset=gb2312" %>


商品信息





在弹出框页面利用一个Iframe来进行嵌套内容页面,这样可以使内容页面使用更加灵活,可以进行查询、添加、修改、删除操作而不会跳出弹出框外。
方法解释:首先定义一个数组进行组织内容页面的数据信息并进行返回。方法addReturnData(selectArray)用来向定义的数组中添加数据信息,returnData()方法用来进行返回数据信息,并关闭对话框。addAndReturnData(selectArray)方法是提供内容页面调用的方法,用来进行组织数据。
3、弹出对话框中内容页面的组织
function getItem(obj){
var arr = new Array();
var dataRow = obj.parentElement.parentElement;
arr[0] = dataRow.cells[0].children[1].value;
arr[1] = dataRow.cells[1].innerHTML;
arr[2] = dataRow.cells[2].innerHTML;
window.parent.addAndReturnData(arr);
window.close();
}



$!data.ITEM_NAME
$!data.ITEM_CODE

方法getItem(obj)用来进行组织数据,并调用父窗体对象中的方法addAndReturnData(arr)用来进行传递数据信息。

你可能感兴趣的:(JavaScript)