簡體   English   中英

Javascript單選按鈕值返回未定義

[英]Javascript Radio Button Values returns undefined

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

請仔細查看我的 Javascript 代碼以嘗試獲取該值(請忽略 return 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) 的代碼返回值“Lenovo X200”,但是,如果我選擇任何其他單選按鈕,則返回值“未定義”!

請幫忙!

如果我理解正確,您將需要這樣的東西:

<!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>

或者

在你的 if 條件上使用括號:

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);
    }
}

據我了解,這是一個非常小的錯誤,因為 for 循環以您的 return false 語句結束。 return false 必須在 for 循環之外。

看看這個jsfiddle (稍微修改為使用 alert() 而不是 document.write();

    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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM