2012-11-23 21 views
0

我有一個簡單的js腳本,我一直用來加載文本框的基礎上,從下拉列表中選擇的值。使腳本工作onload或類似的,而不是在變化

問題:它只在加載時發生變化,如果加載時選擇的值不爲0,則需要在加載頁面時加載它。此腳本對我來說非常混亂,所以我無法準確計算出我需要更新的地方。

腳本:

function addInput(){ 
var arr = [ 
"<p style='text-align:center;'>Reward 1: <input type='text' name='rew1' id='rew1' value='<?php echo $connt['reward_1'] ?>'></p>", 
"<p style='text-align:center;'>Reward 2: <input type='text' name='rew2' id='rew2' value='<?php echo $connt['reward_2'] ?>'></p>", 
"<p style='text-align:center;'>Reward 3: <input type='text' name='rew3' id='rew3' value='<?php echo $connt['reward_3'] ?>'></p>", 
"<p style='text-align:center;'>Reward 4: <input type='text' name='rew4' id='rew4' value='<?php echo $connt['reward_4'] ?>'></p>", 
"<p style='text-align:center;'>Reward 5: <input type='text' name='rew5' id='rew5' value='<?php echo $connt['reward_5'] ?>'></p>", 
"<p style='text-align:center;'>Reward 6: <input type='text' name='rew6' id='rew6' value='<?php echo $connt['reward_6'] ?>'></p>", 
"<p style='text-align:center;'>Reward 7: <input type='text' name='rew7' id='rew7' value='<?php echo $connt['reward_7'] ?>'></p>", 
"<p style='text-align:center;'>Reward 8: <input type='text' name='rew8' id='rew8' value='<?php echo $connt['reward_8'] ?>'></p>", 
"<p style='text-align:center;'>Reward 9: <input type='text' name='rew9' id='rew9' value='<?php echo $connt['reward_9'] ?>'></p>", 
"<p style='text-align:center;'>Reward 10: <input type='text' name='rew10' id='rew10' value='<?php echo $connt['reward_10'] ?>'></p>", 
]; 
var el = document.getElementById('select'); 
var div = document.getElementById('rewards'); 
div.style.display = "block"; 
while(div.hasChildNodes()) { div.removeChild(div.childNodes[0]); } 

if(el.selectedIndex > 0) { 
for(var i = 0; i<el.options[el.selectedIndex].value; i++) { 
div.innerHTML = div.innerHTML + arr[i]; 
} 
} 

} 

回答

2

希望這有助於:

 window.onload = function(){ 
      addInput(); 
     } 
1

與代碼

<body onload="return addInput()"> 
0

獲得真正的 「的onload」 的行爲可以是非常棘手的。問題是,儘管在載荷屬性上設置身體標籤在技術上是可行的,但是一旦身體完成載入,它就會發射。 window onload可能有類似的問題。

許多更復雜的網頁將無法完成加載所需的所有支持文件,腳本或基於AJAX的組件,因此由天真的body onload事件觸發的部分腳本可能會失敗。

許多JavaScript框架提供了一種方法來管理這種情況,只有在所有資源都準備就緒後纔會觸發。我推薦使用在你最喜歡的框架中實現的那個 - 我絕對推薦使用框架,因爲跨瀏覽器支持沒有好的框架是一場噩夢!

例如,在道場(直到最近),你會做:

dojo.addOnLoad(/* function */) 

其觸發一次所有頁面資源可用。