1

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」を返しますが、他のラジオ ボタンのいずれかを選択すると、値は「未定義」に戻ります!

助けてください!

4

2 に答える 2

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>

また

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);
    }
}
于 2013-07-24T09:47:16.647 に答える