2016-10-01 134 views
1

我有一个按钮,用于打印目的。我想在按下打印按钮后,焦点转到另一个按钮。但我的代码不起作用。按下按钮进行打印后,将焦点放在另一个按钮上

错误我从萤火虫得到的是TypeError: document.getElementById(...) is null。 打印过程已成功完成,但打印完成后,重点不会转到“btn_CR”按钮。

如何在打印过程后将焦点放到“btn_CR”按钮上。 我是否需要编写服务器端脚本,或者这可以通过JavaScript处理?请帮我

我的aspx代码::

<asp:Content ID="AdminContent" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> 
<asp:Panel ID="print_Client_registration" Visible="false" runat="server"> 
     <div id="printIt">    
      <div style="width: 260px;font-family:Arial,Helvetica, sans-serif;"> 
       <div style="text-align: center; width: 100%; font-size: 15px;"><b> 
        <asp:Label ID="lblClientId" runat="server" /></b></div> 
       <div style="text-align: left; width: 100%; font-size: 13px;"><b>Name:</b> 
        <asp:Label ID="lblName" runat="server" /></div> 
      </div> 
     </div>    
     <asp:Button ID="btn_print" runat="server" ClientIDMode="Static" Text="Print" OnClientClick="printPage();"/>   
     <div> 
      <table class="nostyle"> 
       <tr> 
        <td><input type="button" id="btn_CR" runat="server" value="Client Register" onclick="window.location.href = 'NewClientRegister.aspx'" /></td> 

       </tr> 
      </table> 
     </div> 
    </asp:Panel> 
    <script type="text/javascript"> 
     var NextFocusButtonId = <%=btn_CR.ClientID%>; 
    </script> 
    <script type="text/javascript" src="../scripts/print.js"></script> 
</asp:Content> 

的PrintPage()函数是在外部 “print.js” 文件

function printPage() { 
    var headstr = "<html><head><title></title></head><body>"; 
    var footstr = "</body>"; 
    var newstr = document.getElementById("printIt").innerHTML; 
    var oldstr = document.body.innerHTML; 
    document.body.innerHTML = newstr; 
    window.print(); 
    document.body.innerHTML = oldstr; 
    document.getElementById('<%=btn_CR.ClientID%>').focus(); 
} 

至于建议我改变了代码

document.getElementById('<%=btn_CR.ClientID%>').focus(); 

document.getElementById('btn_CR').focus(); 但是s直到得到相同的错误TypeError: document.getElementById(...) is null

+0

你确定,错误在第二个'getElementById'中? – Backs

+0

@Backs我对JavaScript不太好。我只是发布我从萤火虫控制台得到的东西。请你建议可能是什么问题的解决方案。谢谢! – user4221591

+0

伙计们请给我一些解决方案。谢谢! – user4221591

回答

1

您不能在.js文件中使用内嵌表达式<%=btn_CR.ClientID%>。 尝试使用

document.getElementById('btn_CR').focus(); 

而且,在你printPage功能你打电话getElementById(printIt').innerHTMLID 'printIt'没有元素,所以会返回null,并且null.innerHTML会中断。

+0

感谢您的及时回复。那么我应该用什么来专注于另一个按钮? – user4221591

+0

我已经提供了完整的aspx代码。请看一看。谢谢! – user4221591

0

这部分代码<%=btn_CR.ClientID%>未在print.js内转换。 现在,因为你需要它翻译了一招它只是JavaScript文件之前做这个,比如你可以这样做:

<script> 
var NextFocusButtonId = <%=btn_CR.ClientID%>; 
</script> 
<script type="text/javascript" src="../scripts/print.js"></script> 

和里面你print.js你写

document.getElementById(NextFocusButtonId).focus(); 
+0

我应该使用'document.getElementById(NextFocusButtonId).focus();'或'document.getElementById('NextFocusButtonId')。focus();'。请建议。 – user4221591

+0

我提供了页面的HTML。请查看代码。我已按照您的建议进行了更改,但仍无法解决问题。谢谢!!! – user4221591

相关问题