如何在子窗口打开时停止重新加载父窗口

时间:2012-01-03 09:41:19

标签: javascript jquery struts2 popupwindow

  

我有一个表单提交,它从表单中获取值并继续   到下一页...这里我有一个打开子窗口的超链接,同时   我点击它,打开子窗口,同时重新加载   父窗口。我有一个配置到父窗口的操作   还有一个数据库插入语句。

     

问题在于,当我点击链接时,它会调用我的操作   再次(因为页面重新加载),在这个动作我写的条件来   检查上一页表单提交中的null /空字符串。从此   是第二次动作加载它看起来的字段(但是   实际上这些字段是我以前的页面形式)。所以它取无效   在检查我的条件时。

     

另一个问题是,当我解决上述问题时,就来了   SQL insert语句,即将执行第二次。我不想要   这是发生的事情,或者我不希望我的行动在我打开时执行   弹出窗口,我想从弹出窗口填充选定的值   到父窗口。

用于打开弹出窗口的

代码

 function select_reactant()
    {
        window.open ("SeriesTab.action?component=reactant",
            "mywindow","scrollbars=1,resizable=1,width=1000,height=1000");  
        };

这是我打开弹出窗口的地方,想要将弹出窗口中选择的值填充到此处的文本

<tr>
    <td><a href="" onclick="select_reactant();">reactant</a></td>
    <td><s:textfield name="reactant" id="reactantId" readonly="true" theme="simple"/></td>
  </tr>

jquery将值表单弹出窗口返回到父窗口

$(window.opener.document).find('#reactantId').val(rxn);

以下操作中的代码就是我在开头提到的操作

if(Rxn!=null||!Rxn.equals(""))  //Rxn is the field variable for previous page
{ 
//my insert statement
}

当我运行时,我得到nullpointer错误,因为由于弹出打开

,页面重新加载Rxn的值被重置为null
window.open 

1 个答案:

答案 0 :(得分:2)

你可以做这样的事情

HTML

<a href="#" id="anchSelectReactant">reactant</a>

jQuery

$(function(){
    $("#anchSelectReactant").click(function(){
        select_reactant();
        return false;
    });
});