今天在做一个jsp的页面,然后又弹出一个对话框,并且把输入框的值返回到文本中。具体代码如下:
1 父页面
<%
...
request.setCharacterEncoding ("GBK") ;
%>
<% ... @page contentType="text/html; charset=gb2312" %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
< script type ="text/javascript" > ...
function openwindow()...{
var temp= window.showModalDialog("NewBox.jsp",window,"status:no;scroll:no;dialogWidth:235px;dialogHeight:150px");
if(temp!=undefined)
document.all.phone_number.value += temp+",";
}
</ script >
< head >
< title > 欢迎您! </ title >
< script language ="Javascript" src ="/js/validate.js" ></ script >
</ head >
< body >
< form name ="form" method ="post" action ="RegisterAction.jsp" onSubmit ="return Validator.Validate(this,2);" >
< table table width ="50%" border ="1" align ="center" cellpadding ="4" bordercolor ="#C0C0C0" bordercolorlight ="#C0C0C0" bordercolordark ="#FFFFFF" bgcolor ="#EEEEEE" >
< tr >
< td align ="right" > 请输入手机号码: </ td >
< td align ="left" >
< label >< font size ="3" color ="red" >
< input type ="text" dataType ="Mobile" msg ="手机号码不正确" name ="phone_number" id ="phone_number" />
< input type ="button" name ="add" value ="添加" onclick ="openwindow()" /> * 必填 </ font > [多个号码以“,”分割] </ label >
</ td >
</ tr >
< tr >
< td align ="right" > 请输入短信内容: </ td >
< td align ="left" >
< textarea name ="contents" cols ="30" rows ="5" ></ textarea >
</ td >
</ tr >
< tr >
< td align ="right" >
< label >
< input type ="submit" name ="Submit" value ="提 交" />
</ label >
</ td >
< td align ="left" >
< label >
< input type ="reset" name ="Reset" value ="重 置" />
</ label >
</ td >
</ tr >
</ table >
</ form >
</ body >
</ html >
<% ... @page contentType="text/html; charset=gb2312" %>
<! DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" >
< html >
< script type ="text/javascript" > ...
function openwindow()...{
var temp= window.showModalDialog("NewBox.jsp",window,"status:no;scroll:no;dialogWidth:235px;dialogHeight:150px");
if(temp!=undefined)
document.all.phone_number.value += temp+",";
}
</ script >
< head >
< title > 欢迎您! </ title >
< script language ="Javascript" src ="/js/validate.js" ></ script >
</ head >
< body >
< form name ="form" method ="post" action ="RegisterAction.jsp" onSubmit ="return Validator.Validate(this,2);" >
< table table width ="50%" border ="1" align ="center" cellpadding ="4" bordercolor ="#C0C0C0" bordercolorlight ="#C0C0C0" bordercolordark ="#FFFFFF" bgcolor ="#EEEEEE" >
< tr >
< td align ="right" > 请输入手机号码: </ td >
< td align ="left" >
< label >< font size ="3" color ="red" >
< input type ="text" dataType ="Mobile" msg ="手机号码不正确" name ="phone_number" id ="phone_number" />
< input type ="button" name ="add" value ="添加" onclick ="openwindow()" /> * 必填 </ font > [多个号码以“,”分割] </ label >
</ td >
</ tr >
< tr >
< td align ="right" > 请输入短信内容: </ td >
< td align ="left" >
< textarea name ="contents" cols ="30" rows ="5" ></ textarea >
</ td >
</ tr >
< tr >
< td align ="right" >
< label >
< input type ="submit" name ="Submit" value ="提 交" />
</ label >
</ td >
< td align ="left" >
< label >
< input type ="reset" name ="Reset" value ="重 置" />
</ label >
</ td >
</ tr >
</ table >
</ form >
</ body >
</ html >
2 子对话框页面
<%
...
request.setCharacterEncoding ("GBK") ;
%>
<% ... @page contentType="text/html; charset=gb2312" %>
< html >
< head >
< title > 手机号码输入框 </ title >
< script language ="Javascript" src ="/js/validate.js" ></ script >
</ head >
< body >
< FORM method =post name =form1 action ="" onSubmit ="return Validator.Validate(this,2);" >
请输入手机号码: < INPUT type =text name =inboxname dataType ="Mobile" msg ="手机号码不正确" >< br >
< INPUT type ="button" name =inputboxbt value =确定 onclick ="window.returnValue=document.all.inboxname.value;window.close();" >
</ FORM >
</ body >
<% ... @page contentType="text/html; charset=gb2312" %>
< html >
< head >
< title > 手机号码输入框 </ title >
< script language ="Javascript" src ="/js/validate.js" ></ script >
</ head >
< body >
< FORM method =post name =form1 action ="" onSubmit ="return Validator.Validate(this,2);" >
请输入手机号码: < INPUT type =text name =inboxname dataType ="Mobile" msg ="手机号码不正确" >< br >
< INPUT type ="button" name =inputboxbt value =确定 onclick ="window.returnValue=document.all.inboxname.value;window.close();" >
</ FORM >
</ body >
3 在这里要注意的是,如果弹出的对话框内容比较多涉及到翻页则不能用showModalDialog了,因为里面翻页时会弹出新的页面。所以在这里我又用了window.open(),可是又有新的情况了,就是参数传回来不方便。但网上高手毕竟还是多,今天看到别人的一个例子受到了点启发,现在把我自己写的帖出来,以供大家参考。
mobieList.jsp里的js代码如下:
function
openListwindow()
...
{
window.open("mobieSelect.jsp", 'newwindow', 'height=500, width=700, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no');
}
window.open("mobieSelect.jsp", 'newwindow', 'height=500, width=700, top=0, left=0, toolbar=no, menubar=no, scrollbars=no, resizable=no,location=no, status=no');
}
mobieList.jsp里的文本代码如下:
<
table
table width
="60%"
border
="1"
align
="center"
cellpadding
="4"
bordercolor
="#C0C0C0"
bordercolorlight
="#C0C0C0"
bordercolordark
="#FFFFFF"
bgcolor
="#EEEEEE"
>
< tr >
< td align ="right" > 请输入手机号码: </ td >
< td align ="left" >
< label >< font size ="3" color ="red" >
< input name ="phnumber" type ="text" id ="phnumber" size ="35" />
< img name ="imageField" src ="/image/mnu_filter.gif" width ="16" height ="16" border ="0" alt ="添加" onclick ="openListwindow()" > * 必填 </ font > [多个号码以“,”分割] </ label >
</ td >
</ tr >
< tr >
< td align ="right" > 请输入短信内容: </ td >
< td align ="left" >
< textarea name ="contents" cols ="35" rows ="5" ></ textarea > [200个汉字以内]
</ td >
</ tr >
< tr >
< td align ="right" >
< label >
< input type ="submit" name ="Submit" value ="提 交" />
</ label >
</ td >
< td align ="left" >
< label >
< input type ="reset" name ="Reset" value ="重 置" />
</ label >
</ td >
</ tr >
</ table >
< tr >
< td align ="right" > 请输入手机号码: </ td >
< td align ="left" >
< label >< font size ="3" color ="red" >
< input name ="phnumber" type ="text" id ="phnumber" size ="35" />
< img name ="imageField" src ="/image/mnu_filter.gif" width ="16" height ="16" border ="0" alt ="添加" onclick ="openListwindow()" > * 必填 </ font > [多个号码以“,”分割] </ label >
</ td >
</ tr >
< tr >
< td align ="right" > 请输入短信内容: </ td >
< td align ="left" >
< textarea name ="contents" cols ="35" rows ="5" ></ textarea > [200个汉字以内]
</ td >
</ tr >
< tr >
< td align ="right" >
< label >
< input type ="submit" name ="Submit" value ="提 交" />
</ label >
</ td >
< td align ="left" >
< label >
< input type ="reset" name ="Reset" value ="重 置" />
</ label >
</ td >
</ tr >
</ table >
mobieSelect.jsp代码如下:
<
script
language
="javascript"
type
="text/javascript"
>
...
function getSelect(oSrc)...{
var boxes = document.getElementsByName("rowId");
var str = "";
isCheck = isChecked(oSrc);
if(isCheck == true)...{
for (var i = 0; i < boxes.length; i++)
...{
if (boxes[i].checked)
...{
str += boxes[i].value+",";
}
}
var str_2 = str.substr(0,str.length-1);
window.opener.form.phnumber.value = str_2;
//return str_2;
}else...{
alert("请选择要发短信的手机号码!");
}
}
function isChecked(oSrc)...{
oSrc = eval(oSrc).rowId;
if(oSrc!=null)
...{
for (i=oSrc.length-1;i>=0;i--)...{
if (oSrc[i].checked)...{return true;}
}
if (oSrc.checked)...{return true;}
}
return false;
}
</ script >
< html >
< head >
< title > 手机号码选择页面! </ title >
</ head >
< body >
< form name ="handle" method ="post" action ="" >
< table width ="80%" border ="1" align ="center" cellpadding ="4" bordercolor ="#C0C0C0" bordercolorlight ="#C0C0C0" bordercolordark ="#FFFFFF" bgcolor ="#EEEEEE" >
< tr >
< td align ="center" >< font style ="font-size:16px" > 全 < input type ="checkbox" name ="all" value ="checkbox" onclick ="chkClick(this , handle)" > 选 </ font ></ td >
< td align ="center" >< font style ="font-size:16px" > 手机号码 </ font ></ td >
< td align ="center" >< font style ="font-size:16px" > 手机用户 </ font ></ td >
</ tr >
<% ...
//声明分页变量并初始化
//当前页码值,最小索引值:1
int pageNo = 1;
//每页面显示的资讯条数(行数)
int row = 10;
//最大显示页数
int MAX_PAGE_NUM=0;
//最大每页显示条数
int MAX_ROWCOUNT=15;
//总记录数
int COUNT = 0;
//从请求中获取分页变量的值
String reqNo=request.getParameter("pageNo");
String reqRow=request.getParameter("row");
MobieNumberService mns = new MobieNumberService();
MAX_PAGE_NUM = mns.getPageMobieInfor(row);
if(!StringUtils.isEmpty(reqNo) && NumberUtils.isNumber(reqNo) && Integer.parseInt(reqNo)>1){
//分页数不超过 MAX_PAGE_NUM 页,若需要超过 MAX_PAGE_NUM 页,则修改 MAX_PAGE_NUM
if(Integer.parseInt(reqNo)<=MAX_PAGE_NUM)
pageNo=Integer.parseInt(reqNo);
else
pageNo=MAX_PAGE_NUM;
}
if(!StringUtils.isEmpty(reqRow) && NumberUtils.isNumber(reqRow) && Integer.parseInt(reqRow)>1){
//每页显示的条目在 MAX_ROWCOUNT 行以内,若需要超过 MAX_ROWCOUNT 行,则修改 MAX_ROWCOUNT
if(Integer.parseInt(reqRow)<=MAX_ROWCOUNT)
row=Integer.parseInt(reqRow);
else
row=MAX_ROWCOUNT;
}
int startNum=(pageNo - 1) * row;
/** 以上为翻页程序 **/
List li = new ArrayList();
try
{
li = mns.selectMobieInfor(startNum,row);
COUNT = mns.getCountMobieInfor();
}
catch(Exception exp) {
//exp.printStackTrace();
}
Iterator it = li.iterator();
while(it.hasNext()) {
MobieNumber mn = (MobieNumber) it.next();
%>
< tr >
< td align ="center" >< input type ="checkbox" name =rowId value ="<%=mn.getMobie_number()%>" ></ td >
< td align ="center" > <% = mn.getMobie_number() %> </ td >
< td align ="center" > <% = mn.getMobie_user() %> </ td >
</ tr >
<% ... } %>
< tr >
< td colspan ="3" >< label >
< input type ="button" name ="Submit3" value ="确 定" onclick ="getSelect(handle);window.close();" >
</ label > <% ...
//处理分页链接
out.println("共计:"+COUNT+" ");
if(pageNo<MAX_PAGE_NUM)
out.println("<a href='mobieSelect.jsp?pageNo="+(pageNo+1)+"&row="+row+"'>下页</a> ");
if(pageNo>1)
out.println("<a href='mobieSelect.jsp?pageNo="+(pageNo-1)+"&row="+row+"'>上页</a> ");
out.println("<a href='mobieSelect.jsp?pageNo=1&row="+row+"'>首页</a> ");
out.println("<a href='mobieSelect.jsp?pageNo="+MAX_PAGE_NUM+"&row="+row+"'>末页</a> ");
out.println("第"+pageNo+"/"+MAX_PAGE_NUM+"页<br/>");
%> </ td >
</ tr >
</ table >
</ form >
</ body >
</ html >
function getSelect(oSrc)...{
var boxes = document.getElementsByName("rowId");
var str = "";
isCheck = isChecked(oSrc);
if(isCheck == true)...{
for (var i = 0; i < boxes.length; i++)
...{
if (boxes[i].checked)
...{
str += boxes[i].value+",";
}
}
var str_2 = str.substr(0,str.length-1);
window.opener.form.phnumber.value = str_2;
//return str_2;
}else...{
alert("请选择要发短信的手机号码!");
}
}
function isChecked(oSrc)...{
oSrc = eval(oSrc).rowId;
if(oSrc!=null)
...{
for (i=oSrc.length-1;i>=0;i--)...{
if (oSrc[i].checked)...{return true;}
}
if (oSrc.checked)...{return true;}
}
return false;
}
</ script >
< html >
< head >
< title > 手机号码选择页面! </ title >
</ head >
< body >
< form name ="handle" method ="post" action ="" >
< table width ="80%" border ="1" align ="center" cellpadding ="4" bordercolor ="#C0C0C0" bordercolorlight ="#C0C0C0" bordercolordark ="#FFFFFF" bgcolor ="#EEEEEE" >
< tr >
< td align ="center" >< font style ="font-size:16px" > 全 < input type ="checkbox" name ="all" value ="checkbox" onclick ="chkClick(this , handle)" > 选 </ font ></ td >
< td align ="center" >< font style ="font-size:16px" > 手机号码 </ font ></ td >
< td align ="center" >< font style ="font-size:16px" > 手机用户 </ font ></ td >
</ tr >
<% ...
//声明分页变量并初始化
//当前页码值,最小索引值:1
int pageNo = 1;
//每页面显示的资讯条数(行数)
int row = 10;
//最大显示页数
int MAX_PAGE_NUM=0;
//最大每页显示条数
int MAX_ROWCOUNT=15;
//总记录数
int COUNT = 0;
//从请求中获取分页变量的值
String reqNo=request.getParameter("pageNo");
String reqRow=request.getParameter("row");
MobieNumberService mns = new MobieNumberService();
MAX_PAGE_NUM = mns.getPageMobieInfor(row);
if(!StringUtils.isEmpty(reqNo) && NumberUtils.isNumber(reqNo) && Integer.parseInt(reqNo)>1){
//分页数不超过 MAX_PAGE_NUM 页,若需要超过 MAX_PAGE_NUM 页,则修改 MAX_PAGE_NUM
if(Integer.parseInt(reqNo)<=MAX_PAGE_NUM)
pageNo=Integer.parseInt(reqNo);
else
pageNo=MAX_PAGE_NUM;
}
if(!StringUtils.isEmpty(reqRow) && NumberUtils.isNumber(reqRow) && Integer.parseInt(reqRow)>1){
//每页显示的条目在 MAX_ROWCOUNT 行以内,若需要超过 MAX_ROWCOUNT 行,则修改 MAX_ROWCOUNT
if(Integer.parseInt(reqRow)<=MAX_ROWCOUNT)
row=Integer.parseInt(reqRow);
else
row=MAX_ROWCOUNT;
}
int startNum=(pageNo - 1) * row;
/** 以上为翻页程序 **/
List li = new ArrayList();
try
{
li = mns.selectMobieInfor(startNum,row);
COUNT = mns.getCountMobieInfor();
}
catch(Exception exp) {
//exp.printStackTrace();
}
Iterator it = li.iterator();
while(it.hasNext()) {
MobieNumber mn = (MobieNumber) it.next();
%>
< tr >
< td align ="center" >< input type ="checkbox" name =rowId value ="<%=mn.getMobie_number()%>" ></ td >
< td align ="center" > <% = mn.getMobie_number() %> </ td >
< td align ="center" > <% = mn.getMobie_user() %> </ td >
</ tr >
<% ... } %>
< tr >
< td colspan ="3" >< label >
< input type ="button" name ="Submit3" value ="确 定" onclick ="getSelect(handle);window.close();" >
</ label > <% ...
//处理分页链接
out.println("共计:"+COUNT+" ");
if(pageNo<MAX_PAGE_NUM)
out.println("<a href='mobieSelect.jsp?pageNo="+(pageNo+1)+"&row="+row+"'>下页</a> ");
if(pageNo>1)
out.println("<a href='mobieSelect.jsp?pageNo="+(pageNo-1)+"&row="+row+"'>上页</a> ");
out.println("<a href='mobieSelect.jsp?pageNo=1&row="+row+"'>首页</a> ");
out.println("<a href='mobieSelect.jsp?pageNo="+MAX_PAGE_NUM+"&row="+row+"'>末页</a> ");
out.println("第"+pageNo+"/"+MAX_PAGE_NUM+"页<br/>");
%> </ td >
</ tr >
</ table >
</ form >
</ body >
</ html >