首页 > 解决方案 > 在 javascript 上获取 Window.opener.function 的值

问题描述

首先,我用这个打开一个新窗口

  $('input#btn_show').click(function(event){
NewWindow("?mod=autorisasi_report", "autorisasi", 600, 400, "no");}
    );

然后如果授权成功,它将打开窗口开启器

function run_submit(){
        window.opener.doreport(frm);

    window.close();
    return false;
}

但问题出在函数 doreport

function doreport(frm)
{
   if(frm.reptype.value == 'income_statement_period')
   {
    popFullScreen("print.php?mod=accounting_report_print&cmd="+frm.reptype.value+'&is_excel='+frm.is_excel.value+'&ryear='+frm.ryear.value+'&rmonth='+frm.rmonth.value+'&gpid='+frm.gpid.value+'&coaid='+frm.coaid.value+'&coaid2='+frm.coaid2.value+'&tbtype='+frm.tbtype.value+'&startdate='+frm.startdate.value+'&enddate='+frm.enddate.value+'&{SID}'+'&cctype='+frm.cctype.value,frm.reptype.value);
   }
}

<form name="frm" id="frm" action="" method="GET" style="width: 700px;">
 ... 
<select name="reptype" onchange="change_reptype(frm);">
    <option value='trial_balance'> Trial Balance</option>
</select>
 ...
</form>

frm.reptype 未定义,我必须做什么才能获得 reptype 值?

标签: javascripthtml

解决方案


函数 run_submit 中的变量 frm 有问题。对此没有任何声明。您应该首先在函数 run_submit 中声明。

或者你可以用这个在函数 do_report 中声明 frm

var frm = document.getElementByID('frm');

因为您需要先声明您的表格。


推荐阅读