<input type=submit value=确定 name=submit style='background-color:#ffffff;' onclick=Javascript:window.close();>
肯定错了.冲突了.你在iframe中做一个结果的判断, 如果有结果就关闭子窗口,试试.

解决方案 »

  1.   

    onclick="javascript:document.queryform.submit();window.close();"
      

  2.   


      to  duhastfaust() :
     
                   如何判断呢?我不会写。  to  bingofei(bingo):               这么写表单可以提交,但window.close();这条语句不起作用,好奇怪!
      

  3.   

    你这样当然错了。。你等于是截获了提交事件 ,然后把提交改成直接关闭了 。 。 。
    你可以在提交以后,再关闭就可以了。。
    先document.all.queryform .submit();
      window.opener = null ;
      window.close();也就是: onclick = "javascript:document.all.queryform.submit();window.opener=null;window.close();"
      

  4.   

    onclick = "javascript:document.queryform.submit();self.close();"
      

  5.   

    我的错 , 先submit再close好像是不行的 , 因为在submit的时候,就已经跳转到了另一个页面 。 。 。另一种方法:在主窗口中直接关闭子窗口 。
    原理是通过一个变量存放打开的子窗口,当主窗口探测到更新时,调用函数关闭打开的子窗口 。
    代码如下:
    <script language = javascript>
    var ChildWnd;//定义一个变量存放打开的子窗口
    function OpenChildWnd()
    {
       //打开子窗口
       ChildWnd = window.open('controlservlet?action=showcondition&objName=people',null,'top=250,left=300,width=400,height=250,toolbar=0,location=0,directories=0,menubar=0,scrollbars=1,resizable=1,status=0');
    }
    function CloseChildWnd()//当需要时,调用此函数关闭子窗口 。
    {
       ChildWnd.close();
    }
    </script><input type="button" value="人要素查询" name="people" style="background-color:#D1D5BA;"  onclick="OpenChildWnd()">
      

  6.   

    to  duhastfaust() :
     
                   如何判断呢?我不会写。
    比如,你的iframe中有一个table,一开始cell里应该没有内容,查询结束后根据查询结果进行判断么.
      

  7.   

    对啊,先提交再关闭窗口啊,把按钮定义成button类型的,不要定义成submit类型
      

  8.   

    子窗口提交到controlservlet页面,所以在controlservlet中做完处理,并在父窗口的IFRAME中显示了处理后结果后,再调用window.close();这样子窗口就可以关闭了!
      

  9.   

        to  ricky460(阿酷):         还有别的好办法么?我就是想把查询条件提上去,然后再把子窗口关掉。    我不是说你的方法不好用,但你不太了解我这里的情况,那个子窗口是JAVA的一个Servlet,它根据不同的条件,即:  controlservlet?action=showcondition&objName=people  <!-- 人要素查询 -->
      controlservlet?action=showcondition&objName=area   <!-- 地要素查询 -->
      controlservlet?action=showcondition&objName=good  <!-- 物要素查询 -->
        .
        .
        .
      等等一些参数生成不同的查询条件输入页面子窗口。但实际上这些子窗口都是同一个Servlet,即他们是同一个子窗口。   如果用你的办法,整个前台显示层流程就要修改了,这不行的。   我javascript方面实在水平有限,还请各位帮我再想想。   哎,急死我了!
      

  10.   


      to rabbit99(小兔子乖乖)  还有  duhastfaust() :     你们是说要侦测<iframe >的变化是么?在什么事件里写"子窗口.close();"方法啊?
      

  11.   

    <form method=POST action=controlservlet?action=interquery name=queryform onsubmit=return(ch(this))>   <!-- 填充姓名 -->
       <input type=text name=XM size=26 style='background-color:#6699cc;' onblur='Check_String(this)'>   <!-- 填充身份证号 -->
       <input type=text name=SFZH size=26 style='background-color:#6699cc;' onblur='Check_String(this)'>   <!-- 提交按钮 -->
       <input type="submit" name="Submit" value="提交" onClick="document.form1.submit();self.opener='lhc';self.close();">   <!-- 重写按钮 -->
       <input type=reset value=重写 name=reset style='background-color:#ffffff;'>   </form>
      

  12.   

        to  gdjxlhc(超仔):          你试过了么?这段代码在你那里好使么?
      

  13.   


    1\把<input type=submit value=确定 name=submit style='background-color:#ffffff;' onclick=Javascript:window.close();>
    这个改成<input type=button value=确定 name=submit style='background-color:#ffffff;' onclick="Javascript:submitandclose()";>2、定义submitandclose()
    function submitandclose(){
         var xm = document.queryform.xm.value ;
         window.framename.document.location.href = "controlservlet?action=interquery&xm=" + xm ;
         window.close();
    }3、这样应该能实现你所需要的功能了,思路是用在按钮的onclick事件中处理提交,把需要提交的各个变量用js处理,连接到需要提交的地址。
      

  14.   


      to  gdjxlhc(超仔):
          可是在我这里不好使啊  to bingofei(bingo):
          谢谢你帮我,但这样的方法需要修改前台显示层设计,设计思路现在是不能改的,不然没有办法合啊,还有别的办法么?  大家再帮我看看啊
      

  15.   

    怎么会要修改前台显示层设计?我不理解。
    第一,我给你的代码里面没有涉及到界面设计吧?只是多定义一个函数而已。如果你不愿意使用函数的话,直接写到按钮的onclick事件中也行。
    第二,本身用js操作应该就属于前台的范畴,你所谓的修改前台显示层设计,我不理解。
      

  16.   


        to bingofei(bingo) :          比如"controlservlet?action=interquery&xm=" + xm ;          姓名信息是不允许在这里传递的,如果传递了,就要修改ControlServlet.java
    而这个JAVA类是整个前台业务流的枢纽,它可不单单是负责读取查询条件,返回查询结果,再说我写的那些HTML只是个例子,实际上,就连这些查询条件都是活的,有时候这个条件是“姓名”,可有的时候却是“数据元事件”,ControlServlet.java把这些组织查询条件的工作交给了ShowCondition.java来处理,而ShowCondition.java又调用了C++的Corba服务器,流程是很复杂的,所以不能改啊。
      

  17.   

    楼主的意思我还不是很清楚
    其实你也并不需要调用onclick=Javascript:window.close();
    试着将下面的代码加入你的网页中适当位置,修改成你想要的效果吧
    <script language="JavaScript">
    {
    id=document.input.id.value
    aa='您确定要查询  [ID='+id+' ]  吗?'   //id设为查询条件
    if (confirm(aa))
    window.location="killdel.asp?id="+id;
    else
    window.location="admin.asp";
    }
    </script>