2013-10-19 22 views
1

我有一組HTML定義像這樣的單選按鈕:HTML形式永遠不會調用的Javascript

<input type="radio" name="group" id="rad1" value="rad1" onClick="doStuff(this.id)">Option 1<br> 
<input type="radio" name="group" id="rad2" value="rad2" onClick="doStuff(this.id)">Option 2<br> 

就在</body>標記之前,我已經定義了以下JavaScript行爲:

<script type="text/javascript"> 
     /*<![CDATA[*/     
     function doStuff(var id){ 
      alert("Doing stuff!"); 
     } 
     /*]]>*/ 
    </script> 

當我運行該程序,頁面按預期在我的瀏覽器窗口中加載,單選按鈕允許我點擊它們。然而,doStuff()函數從來沒有被調用(我也使用斷點驗證了這一點)。

我也想看看,如果行內作出區別如下而已,但它似乎JavaScript是從來沒有所謂的在所有:

<script type="text/javascript"> 
     /*<![CDATA[*/ 
     alert("JavaScript called!"); 
     main(); 
     function main(){ 
      var group = document.getElementsByName('group'); 
       for(var i=0; i<group.length; i++){ 
        group[i].onclick = function(){ 
         doStuff(this.id); 
        }; 
       } 
     } 
     /*]]>*/ 
</script> 

我的問題是,是否有一些特別的東西,我需要用HTML做和JavaScript在這種情況下?我的問題是而不是我是否應該使用內聯函數調用或者這是否是您最喜歡的編寫代碼的方式。

回答

3

函數聲明是壞的 - 不應該在參數之前是一個「變種」有:

function doStuff (id) { 
    alert("Doing stuff!"); 
} 
相關問題