2014-01-29 53 views
0

有如下因素的代碼:參考動態加載元件

<html> 
<head> 
    <script type="text/javascript" src="jquery.js"></script> 
</head> 
<body> 
    <div id="Block"></div> 
    <script type="text/javascript"> 
    function Request(Mode) 
    { 
     jQuery.ajax 
     ({ 
      url:  "Script.php", 
      type:  "POST", 
      dataType: "html", 
      data:  "Mode=" + Mode, 
      success: function(responce) 
         { 
          if (responce == '1') 
          { 
           document.getElementById("MessageField").innerHTML = "Message text"; 
          } 
          else 
          { 
           document.getElementById("Block").innerHTML = responce; 
          } 
         }, 
      error:  document.getElementById("Block").innerHTML = "Request error."  
     }); 
    } 
    Request("load form"); 
    </script> 
</body> 
</html> 

和PHP腳本返回HTML格式或值 '1':

<?php 
if ($_POST['Mode'] == 'load form') 
    echo 
    " 
     <form id = 'AuthForm' method = 'post' action = ''> 
      <table border = 1> 
       <tr> 
        <td id = 'MessageField'> 
         &nbsp 
        </td> 
       </tr> 
       <tr> 
        <td> 
         <input type = 'submit' name='B1' id='B1' value='Show message' onclick = 'Request()'> 
        </td> 
       </tr> 
      </table> 
     </form> 
    "; 
else echo "1"; 
?> 

Javascript函數輸出HTML的形式或改變的innerHTML它是id =「MessageField」的表格單元格。像預想的那樣,但按下按鈕,我得到錯誤 出現形式:

Uncaught TypeError: Cannot set property 'innerHTML' of null 

腳本不能執行字符串:

document.getElementById("MessageField").innerHTML = "Message text"; 

爲什麼?當腳本嘗試改變它時,MessageField已經存在。 O_O

+0

是經過HTML代碼或之前你''