js 弹出框返回参数

今天在做一个jsp的页面,然后又弹出一个对话框,并且把输入框的值返回到文本中。具体代码如下:

1 父页面

<% ... request.setCharacterEncoding("GBK"); %>
<% ... @pagecontentType="text/html;charset=gb2312" %>
<! DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN" >
< html >
< script type ="text/javascript" > ...
functionopenwindow()...{
vartemp=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 ="returnValidator.Validate(this,2);" >
< table tablewidth ="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()" /> &nbsp; *必填 </ font > &nbsp; [多个号码以“,”分割] </ 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 ="提&nbsp;&nbsp;交" />
</ label >
</ td >
< td align ="left" >
< label >
< input type ="reset" name ="Reset" value ="重&nbsp;&nbsp;置" />
</ label >
</ td >
</ tr >
</ table >
</ form >
</ body >
</ html >

2 子对话框页面

<% ... request.setCharacterEncoding("GBK"); %>
<% ... @pagecontentType="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 ="returnValidator.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');
}

mobieList.jsp里的文本代码如下:

< table tablewidth ="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()" > &nbsp; *必填 </ font > &nbsp; [多个号码以“,”分割] </ label >
</ td >
</ tr >
< tr >
< td align ="right" > 请输入短信内容: </ td >
< td align ="left" >
< textarea name ="contents" cols ="35" rows ="5" ></ textarea > &nbsp; [200个汉字以内]
</ td >
</ tr >
< tr >
< td align ="right" >
< label >
< input type ="submit" name ="Submit" value ="提&nbsp;&nbsp;交" />
</ label >
</ td >
< td align ="left" >
< label >
< input type ="reset" name ="Reset" value ="重&nbsp;&nbsp;置" />
</ label >
</ td >
</ tr >
</ table >

mobieSelect.jsp代码如下:

< script language ="javascript" type ="text/javascript" > ...

functiongetSelect(oSrc)...{
varboxes=document.getElementsByName("rowId");
varstr="";
isCheck
=isChecked(oSrc);
if(isCheck==true)...{
for(vari=0;i<boxes.length;i++)
...{
if(boxes[i].checked)
...{
str
+=boxes[i].value+",";
}

}

varstr_2=str.substr(0,str.length-1);
window.opener.form.phnumber.value
=str_2;
//returnstr_2;
}
else...{
alert(
"请选择要发短信的手机号码!");
}

}


functionisChecked(oSrc)...{
oSrc
=eval(oSrc).rowId;
if(oSrc!=null)
...{
for(i=oSrc.length-1;i>=0;i--)...{
if(oSrc[i].checked)...{returntrue;}
}

if(oSrc.checked)...{returntrue;}
}

returnfalse;
}


</ 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
intpageNo=1;
//每页面显示的资讯条数(行数)
introw=10;
//最大显示页数
intMAX_PAGE_NUM=0;
//最大每页显示条数
intMAX_ROWCOUNT=15;
//总记录数
intCOUNT=0;

//从请求中获取分页变量的值
StringreqNo=request.getParameter("pageNo");
StringreqRow=request.getParameter("row");

MobieNumberServicemns
=newMobieNumberService();
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;
}

intstartNum=(pageNo-1)*row;
/**以上为翻页程序**/

Listli
=newArrayList();
try
{
li
=mns.selectMobieInfor(startNum,row);
COUNT
=mns.getCountMobieInfor();
}
catch(Exception
exp){
//exp.printStackTrace();
}
Iteratorit
=li.iterator();
while(it.hasNext()){
MobieNumbermn
=(MobieNumber)it.next();
%>
< tr >
< td align ="center" >< input type ="checkbox" name =rowId value ="<%=mn.getMobie_number()%>" ></ td >
< td align ="center" > &nbsp; <% = mn.getMobie_number() %> </ td >
< td align ="center" > &nbsp; <% = mn.getMobie_user() %> </ td >
</ tr >
<% ... } %>
< tr >
< td colspan ="3" >< label >
< input type ="button" name ="Submit3" value ="确&nbsp;&nbsp;定" onclick ="getSelect(handle);window.close();" > &nbsp;&nbsp;
</ label > &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <% ...
//处理分页链接
out.println(
"共计:"+COUNT+"&nbsp;");
if(pageNo<MAX_PAGE_NUM)
out.println(
"<ahref='mobieSelect.jsp?pageNo="+(pageNo+1)+"&amp;row="+row+"'>下页</a>&nbsp;");
if(pageNo>1)
out.println(
"<ahref='mobieSelect.jsp?pageNo="+(pageNo-1)+"&amp;row="+row+"'>上页</a>&nbsp;");
out.println(
"<ahref='mobieSelect.jsp?pageNo=1&amp;row="+row+"'>首页</a>&nbsp;");
out.println(
"<ahref='mobieSelect.jsp?pageNo="+MAX_PAGE_NUM+"&amp;row="+row+"'>末页</a>&nbsp;");
out.println(
""+pageNo+"/"+MAX_PAGE_NUM+"页<br/>");
%> </ td >
</ tr >
</ table >
</ form >
</ body >
</ html >
两种方法适合在不同的情况下运用。在此记录下来。算是一点总结吧,呵呵。

你可能感兴趣的:(弹出框)