2013-03-13 66 views
0

我有以下javascript函數。基本上它所做的是檢查一組單選按鈕,如果它發現一個checkec值將被設置在特定的文本框中。通過單選按鈕組循環播放

由於某些原因,它不經過for循環。

function placeMarker(location) { 
    document.getElementById('<%= position.ClientID%>').value = location; 
    var marker = new google.maps.Marker({ 
     position: location, 
     map: map 
    }); 
    var i; 
    var checked = false; 
    var radios = document.getElementsByName("DynamicRadioButton"); 
    for (i = 2; i < radios.length; i++) { 
     if (radios[i].checked) { 
      var text = document.getElementsByName("DynamicTextBox"); 
      text[i - 2].value = location; 
     } 
    } 
} 
+0

因爲IHAVE兩個靜態文本框和所有其餘的是動態的,我想只有一個組,單選按鈕的所有文本框。 – 2013-03-13 21:41:16

+0

你是如何確定它不通過'for'循環的?你有沒有嘗試過在循環內記錄?你是否遇到任何控制檯錯誤?你的問題中沒有足夠的信息。 – 2013-03-13 21:47:11

+0

我試過使用警報,但沒有彈出。 – 2013-03-13 21:50:37

回答

0

看看這個jsfiddle,這段代碼確實進入了循環。你的問題一定在別處:

function loop() { 
    var radios = document.getElementsByName("DynamicRadioButton"); 
    for (i = 0; i < radios.length; i++) { 
     alert('looping radio ' + i); 
    } 
}; 

<input type="radio" name="DynamicRadioButton">radio1</input> 
<input type="radio" name="DynamicRadioButton">radio2</input> 
<input type="button" value="Loop" onclick="loop()"/> 

http://jsfiddle.net/txQVv/1/

+0

我剛剛在for循環之後執行警報,並且沒有顯示任何內容。 @gerrytan – 2013-03-13 21:49:51

+0

是的,但是這表明你這樣的代碼進入循環,與上面提到的相反「出於某種原因,它不經過for循環」。請不要利用SO羣來調試你的代碼,問具體的技術問題 – gerrytan 2013-03-13 21:52:17