2016-10-01 137 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

相關問題