2013-07-24 85 views
1

我從Javascript中的單選按鈕組獲取值時有很多困難。我搜索了幾個小時,但沒有找到解決方案。當我嘗試執行document.write命令以顯示單選按鈕的值時,它們都會返回爲「未定義」。但有趣的是,如果我選擇第一個單選按鈕,它會顯示正確的值。這是我的沮喪的一部分,我還沒有找到解決辦法找到如何獲得單選按鈕組中的其他值,這應該是簡單的!對你的幫助表示感謝。Javascript單選按鈕值返回undefined

請仔細看我的Javascript代碼,試圖獲得價值(請忽略返回FALSE;命令,我用它來停止代碼的其餘部分我的網頁上):

for(i = 0; i < document.forms.incident.elements.model.length; i++) 
{ 
    if(document.forms.incident.elements.model[i].checked) 
    var omodcheck = document.forms.incident.elements.model.value; 
document.write(omodcheck); 
return false; 
} 

我的HTML表單名稱是事件。單選按鈕組的形式的代碼如下:

Laptop Model: 
<input type="radio" name="model" value="Lenovo X200" />Lenovo X200<br /> 
<input type="radio" name="model" value="Lenovo X201" />Lenovo X201<br /> 
<input type="radio" name="model" value="Lenovo X200T" />Lenovo X200T<br /> 
<input type="radio" name="model" value="Lenovo X201T" />Lenovo X201T<br /> 
<input type="radio" name="model" value="Lenovo T400" />Lenovo T400<br /> 
<input type="radio" name="model" value="Lenovo R400" />Lenovo R400<br /> 

在這種情況下,用於執行document.write的代碼,(omodcheck)返回值「聯想X200」,但是,如果我爲任何一個選擇的其他單選按鈕,值返回「未定義」!

請幫忙!

+0

將'var omodcheck'放置在循環外並重新定義爲var omodcheck =「」; – jeff

回答

0

從我的理解,這是在for循環是對你的回報虛假陳述結束一個非常小的錯誤。返回false必須在for循環之外。

看看這個jsfiddle(略作修改使用警報()的文件撰寫,而不是();

btnSubmit.onclick = function(){ 
for(i = 0; i < document.forms.incident.elements.model.length; i++) 
{ 
    if(document.forms.incident.elements.model[i].checked) 
    var omodcheck = document.forms.incident.elements.model.value; 
} 
    alert(omodcheck); 
return false; 
} 
1

如果我理解正確的話,你就需要這樣的事情:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
<head> 
<script type="text/javascript"> 
function checkChecked(){ 
    for (var i = 0; i< document.getElementsByName('model').length; i++) { 
     if(document.testform["model"][i].checked){   
      var omodcheck = document.testform["model"][i].value 
      alert(omodcheck); 
     } 
    } 
} 
</script> 
</head> 
<body onload="checkChecked()"> 
Laptop Model: 
<form name="testform"> 
    <input type="radio" name="model" value="Lenovo X200" onchange="checkChecked()" />Lenovo X200<br /> 
    <input type="radio" name="model" value="Lenovo X201" onchange="checkChecked()" />Lenovo X201<br /> 
    <input type="radio" name="model" value="Lenovo X200T" onchange="checkChecked()" />Lenovo X200T<br /> 
    <input type="radio" name="model" value="Lenovo X201T" onchange="checkChecked()" />Lenovo X201T<br /> 
    <input type="radio" name="model" value="Lenovo T400" onchange="checkChecked()" />Lenovo T400<br /> 
    <input type="radio" name="model" value="Lenovo R400" onchange="checkChecked()" checked />Lenovo R400<br /> 
</form> 
</body> 
</html> 
您如果條件

使用括號:

for(i = 0; i < document.forms.incident.elements.model.length; i++) 
{ 
    if(document.forms.incident.elements.model[i].checked){ 
     var omodcheck = document.forms.incident.elements.model[i].value; 
     document.write(omodcheck); 
    } 
}