2011-08-23 42 views
-1

>我有下面的代碼:JavaScript並沒有因此,在我的頭上執行

function dynamicPhoneAddon(){ 
while(true){ 
    var phone = document.myform.phone.value; 
    document.getElementById('writeme').innerHTML ='<input type="hidden" name="retURL" value="http://URLREMOVED/thankyou.php?customer=' + phone + '">'; 
    } 
} 

然後,我有一個身體的onload =「dynamicPhoneAddon()」來稱呼這個腳本。它應該不斷修改div id =「writeme」的內容,方法是使用form myform的phone字段中的值。

但是,腳本無法運行。我之前沒有用JavaScript做過任何工作,所以我認爲這可能是顯而易見的......是因爲我打電話給一個無限循環?還是我想做一些不可能的事情?

我試圖實現的最終結果是創建一個隱藏的值,該隱藏值最後鏈接到帶有變量(電話號碼)的URL。

+1

'while(true)'without'break;'?事實上,你正在實現一個無限循環。如果你想在後臺連續運行一些代碼,請查看[計時器](https://developer.mozilla.org/en/window.setInterval)。 –

+0

把它從你的腦袋裏拿出來放到你計算機上的'.js'文件中。 –

回答

0

取而代之的是(這會導致一些問題),你可以擺脫while循環,並有手機輸入標籤只是有一個onchange="dynamicPhoneAddon()"

1

你的JavaScript並執行 - 永遠。你的函數永遠不會返回,因爲while while循環一直運行。

+0

他說永遠不會運行。 –

+0

它不會永遠運行..它永遠運行_tightly_這是另一類問題! –

+0

@Tomalak,對,DOM甚至沒有機會更新。 –

0

由於while(true),您的腳本進入無限循環。由於Javascript是單線程的(並且不能並行運行),這將使CPU本身,而不是giva有機會運行其他任何東西。

,你能做些什麼來監控文本字段用戶鍵入的就是聽像onkeypress事件的事件:

document.myForm.phone.onkeypress = function(evt){ 
    //do your div updating code here 
}; 

(順便說一句,你爲什麼要使用document.myform使用的getElementById通常更交叉瀏覽器)

相關問題