其中还遇到一些小问题,比如div填充的时候,当从原窗口点击弹出窗口时,页面先加载js还是先加载body的问题,当我初次进入弹出窗口的时候要实现一次查询,那么就在加载body后去做一次查询,$(function(){ });方法可以实现body加载后在掉它里面的js,从而实现首次加载查询。还遇到一个要提出来的问题就是当用form提交的时候,由于弹出窗口跟填充页面加载顺序的问题,导致填充页面的<input>文本框在form(弹出窗口内的)提交找不到。最好以免麻烦,用的是个get带参提交。
现在我就把它拿出来共享下,同时也是对自己的一个提高:
首先在原窗口写弹出窗口的js:
<script>
<!--<link>自己加上-->
function openWin(){
//新窗口的文档名称
var url= "${context}/${module}/trade/customerSelect.do?customerCode=" + $("input[name='customerCode']:first").val() +"&date=" +new Date();
url= encodeURI(url);//解决编码乱码,必须有两次。
url= encodeURI(url);
//高度,位置等
var winFeatures = "status:false;dialogWidth:700px;dialogHeight:460px;status:no;scroll:no";
//ok,open new windows
var cus = window.showModalDialog(srcFile, window , winFeatures); //cus为返回值,在弹出窗口必须写对应的对象才能用下面的cus.value
if (cus != null) {
$("input[name='customerCode']:first").attr("value",cus.value);
}
}
</script>
<body>
.
.
<td width="230"><input type="text" name="customerCode" id="customerCode" value="${customerCode}" maxlength="15" class="STYLE2"> <span class="STYLE2" style="cursor:hand" onClick="openSelectWin();"><img alt="选择客户" src="/biz/image/biz/edit.gif" width="16" height="16" border="0"></span></td>
.
</body>
弹出窗口:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>选择</title>
<script>
// 首页
function msCheck1(){
var customerCode = $('#customerCode').val();
var customerName = $('#customerName').val();
forwordForm(1,customerCode,customerName);
}
// 上一页
function msCheck2(){
var pageNo = parseInt($('#currPageNo').val())-1;
var customerCode = $('#customerCode').val();
var customerName = $('#customerName').val();
forwordForm(pageNo,customerCode,customerName);
}
// 下一页
function msCheck3(){
var pageNo = parseInt($('#currPageNo').val())+1;
var customerCode = $('#customerCode').val();
var customerName = $('#customerName').val();
forwordForm(pageNo,customerCode,customerName);
}
// 尾页
function msCheck4(){
var pageNo = $('#pageCount').val();
var customerCode = $('#customerCode').val();
var customerName = $('#customerName').val();
forwordForm(pageNo,customerCode,customerName);
}
// goto页
function msCheck5(){
var pageNo = $('#goPageNo').val();
var customerCode = $('#customerCode').val();
var customerName = $('#customerName').val();
forwordForm(pageNo,customerCode,customerName);
}
// query
function msCheck(){
var customerCode = $('#customerCode').val();
var customerName = $('#customerName').val();
forwordForm(1,customerCode,customerName);
}
//跳转至
function forwordForm(pageNo, customerCode, customerName){
var url = '/DKFCustomer/dkf/trade/customerSelectQuery.do?pageNo='+pageNo+'&customerCode='+customerCode+'&customerName='+customerName;
url = encodeURI(url);
url = encodeURI(url);
getOperationPage(url);
}
function customer() {
var value;
}
function chooseReason() {
var cus = new customer();
cus.value = $('#value').val();
window.returnValue = cus;
window.close();
}
//此处当body加载完后执行
$(function(){
var customerCode = $('#code').val();
var customerName = "";
forwordForm(1,customerCode,customerName);
});
</script>
</head>
<form id="queryForm" name="queryForm" action="#" method="post">
<input type="hidden" id="value" name="value">
<input type="hidden" name="pageNo" id="pageNo" value="${pageNo!'1'}"/>
<input type="hidden" name="code" id="code" value="${customerCode!''}"/>
<div id="operation_area"></div>
</form>
</html>
填充页面:这下面的好写,留了重点
<td width="150" align="right" class="STYLE2">客户编号:</td>
<td width="200"><input type="text" name="customerCode" id="customerCode" value="${customerCode!''}" class="STYLE2" maxlength="15"></td>
<td width="80" align="right" class="STYLE2">客户名称:</td>
<td class="STYLE2"><input type="text" name="customerName" id="customerName" value="${customerName!''}" class="STYLE2" maxlength="80"></td>
<td align="right"><input type="button" class="STYLE2" id="button" value="查 询" οnclick="msCheck();"/></td>
<tr>
<td width="4%" height="22" background="/biz/image/biz/bg.gif" bgcolor="#FFFFFF"><div align="center"><span class="STYLE2">客户编号</span></div></td>
<td width="4%" height="22" background="/biz/image/biz/bg.gif" bgcolor="#FFFFFF"><div align="center"><span class="STYLE2">客户名称</span></div></td>
<td width="2%" height="22" background="/biz/image/biz/bg.gif" bgcolor="#FFFFFF"><div align="center"><span class="STYLE2">选择</span></div></td>
</tr>
<#list orgcustomerlist as list>
<tr>
<td height="20" bgcolor="#FFFFFF"><div align="center"><span class="STYLE2">${list.value!''}</span></div></td>
<td height="20" bgcolor="#FFFFFF"><div align="center"><span class="STYLE2">${list.name!''}</span></div></td>
<td height="20" bgcolor="#FFFFFF"><div align="center"><span class="STYLE2" style="cursor:hand" οnclick="javascript:$('#value').val(${list.value!''});chooseReason();"><img alt="选择" src="/biz/image/biz/edit.gif"></span></div></td>
</tr>
<tr>
<input type="hidden" name="pageCount" id="pageCount" value="${pageCount!''}"/>
<input type="hidden" name="currPageNo" id="currPageNo" value="${currPageNo!'1'}"/>
<td class="STYLE2"> 当前第 ${currPageNo}/${pageCount} 页</td>
<td><table border="0" align="right" cellpadding="0" cellspacing="0">
<tr>
<#if currPageNo gt 1>
<td width="40"><span οnclick="msCheck1();"><img border="0" style="cursor:hand" alt="第一页" src="/biz/image/biz/first.gif" width="37" height="15"/></span></td>
<td width="45"><span οnclick="msCheck2();"><img border="0" style="cursor:hand" alt="上一页" src="/biz/image/biz/back.gif" width="43" height="15"/></span></td>
</#if>
<#if currPageNo lt pageCount>
<td width="45"><span οnclick="msCheck3();"><img border="0" style="cursor:hand" alt="下一页" src="/biz/image/biz/next.gif" width="43" height="15" /></span></td>
<td width="40"><span οnclick="msCheck4();"><img style="cursor:hand" alt="最后一页" src="/biz/image/biz/last.gif" width="37" height="15" border="0"/></span></td>
</#if>
<td width="100"><div align="center"><span class="STYLE2">转到第<input id="goPageNo" name="goPageNo" type="text" maxlength="4" style="width:30px; border:1px solid #999999;" />页</span></div></td>
<td width="40"><span οnclick="msCheck5();"><img style="cursor:hand" alt="跳转到指定页面" src="/biz/image/biz/go.gif" width="37" height="15" border="0"/></span></td>
</tr>