日期:2014-05-18  浏览次数:20694 次

点击一个按钮后,先自己提交自己后,对取得的变量进行判断,否和要求的话打开子窗体,并讲变量传到子窗体
点击一个按钮之后,做2件事
1页面提交action=自己,从后台取值,刷新本页面
2对取到的值进行判断,符合要求,弹出新窗口,并给新窗口传值

function OpenWindow()
{
  var kaisyaparts;
  parts = <%= int_focusparts %>
  if(parts <17 || parts > 41){
  var subwin;
  subwin=window.open('子窗体',,directories='no',menubar='no',srollbar='no',resizable='no',location='no',status='no')
  subwin.focus();
  return false; 
  }
  }
}
...


   
现在的问题是:
1
打开新窗口的动作放到 onload事件中时,子窗体可以打开,并可以传值,但是父窗体地址找不到了,变成空白页面了。action 变成 no了。
<body bgcolor="#CCFFCC" onLoad="OpenWindow();" style="overflow:auto">

2
打开新窗口的动作放到 按钮的onclick事件中时 ,子窗体可以打开,父窗体也能提交并刷新,但是,子窗体在父窗体提交之前就打开了,父窗体提交后得到的值还没取到,子窗体就打开了。
<input type="submit" name="p_kaisya" value="選択" <%= strErrDisp_p_kaisya %> onclick="OpenWindow();" ></td>



------解决方案--------------------
把函数放到最后执行看看,也就是在</body>之前调用
------解决方案--------------------
action的值是如何设置的
------解决方案--------------------
写一个简单的测试程序放这里,我测试一下看看
------解决方案--------------------
你可以用JS提交 可以去 看我博客的文章 有讲到子父窗体的内容 可以参考参考 你按提交的时候就到JS里提交 就不会出现你那问题;了
------解决方案--------------------
我对代码进行了简单的修改,主要错误应该是window.open方法的使用:
HTML code
<%@ page language="java" contentType="text/html;charset=GBK" %> 

<%               
String      souko_cd1 = "";                 
String      souko_cd2 = "";                 
String      int_focusparts = "";             

String Bt_select = (String)request.getParameter("p_kaisya"); 

souko_cd1 = (String)request.getParameter("k_souko_cd_1"); 
if(souko_cd1==null){ souko_cd1=""; } 
souko_cd2 = (String)request.getParameter("k_souko_cd_2"); 
if(souko_cd2==null){ souko_cd2=""; } 
int_focusparts = souko_cd2; 

session.setAttribute("cd_1",souko_cd1); 


%> 
<html> 
<head> 
<title>test </title> 
<meta http-equiv="Content-Type" content="text/html; charset=GBK"> 
<script language='javascript'>alert('int_focusparts=\"<%= int_focusparts %>\"  \n '); </script> 
<script language="JavaScript"> 
<!-- 
function OpenWindow() 
{ 
    var select= "<%= Bt_select %>"; 
    if(select == 'select' ){ 
    alert('select=\"' + select +'\"'); 
        var kaisyaparts = "<%= int_focusparts %>";
  //  alert('kaisyaparts=\"' + kaisyaparts +'\"'); 
        if(kaisyaparts  < 17  || kaisyaparts > 41){ 
            var subwin; 
            subwin=window.open('b.jsp',null,"menubar=no,srollbar=no,resizable=no,location=no,status=no"); 
            subwin.focus(); 
        } 
    } 
    return false;  
} 
--> 
</script> 
</head> 
<body bgcolor="#CCFFCC" onLoad="" style="overflow:auto"> 
<left> 
<h1 align="center" class="title" nowrap>test </h1> 
</left> 
<form name="form1" method="post" action="a.jsp"> 
<table > <tr> <td> 
     <tr height="19"> 
       <td width="" align="left" >texta </td> 
       <td width="" align="left" >textb </td> 
       <td width="" align="left" > </td> 
     </tr> 
     <tr height="19">