2011-09-30 53 views
0

我有一個全局變量,稱爲'名稱',當用戶點擊一個按鈕的文本框內容被查詢和'名稱'設置爲內容然後名稱打印在一個不同的jquery頁面。變量設置不通過表單元素

我的問題是名稱永遠不會打印爲其設置的名稱,而是始終打印爲最初設置的名稱。

這是我的回調函數:

<script type="text/javascript"> 
     $("#finalize").click(function(e) 
     { 
      g_name = "BLAH"; 
      return true; 
     }); 
    </script> 

爲了簡單起見,我設置的名稱只是在點擊「BLAH」。

g_name是全局聲明的(即在函數範圍之外)。

在其他的jQuery的網頁我有:

document.write('<label for="testname">Name:</label>'); 
       document.write('<input type="text" name="testname" id="testname" value="'); 
       document.write(g_name) 
       document.write('"/>'); 

而且g_name始終顯示爲別的東西,不管g_name最初initilized來。

的按鈕,其點擊回調設置了全局變量也轉變了頁,如果有差別......

編輯:

好,我想通了,什麼是錯的,全局變量是被在設定之前寫下來。現在,我想這樣做:

 <script type="text/javascript"> 
      $('#confirmscreen').bind('pageshow',function() 
      { 
       document.write('<label for="testname">Name:</label>'); 
       document.write('<input type="text" name="testname" id="testname" value="'); 
       document.write(g_name); 
       document.write('"/>'); 

       document.write(g_phonenumber); 
      }); 
     </script> 

但是jQuery的似乎並不喜歡使用的「pageshow」事件文件撰寫,是有辦法,我可以使這項工作,也就是說,寫出g_name當頁面顯示,而不是網站加載時?

+0

喲 - 你應該考慮knockoutjs。它是一個用js編寫的可觀察的數據綁定系統。 –

+0

在哪個瀏覽器中試用?你有沒有檢查你是否得到任何JavaScript錯誤? – AmGates

回答

1

代替使用document.write使用JavaScript方法使用document.createElement()並使用的setAttribute()方法來分配和屬性的值,以所創建的元件。

希望這可以幫助你。

0

如果該按鈕導致頁面位置發生變化,那麼您的全局變量將被重置,並且在第二頁上不可用,如果有意義的話。在javascript全局變量是每個窗口,如果窗口位置變化,新的全局變量集。

+0

它不會轉到新的網頁,它只是在同一網頁上的新jquery頁面中轉換。 – tweetypi