0

ユーザーが保存ボタンをクリックしたときに、チェックされたラジオボタンの値をコードで取得したいと考えています。コードを配置しましたが、クラス ID がないため、ラジオ ボタンをループする方法がわかりません。ここに私が持っているものがあります:

<!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">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<script>
saveButton.onclick = function() {       
    // Go through shirtColor rabio buttons to see which one is ticked
    for (var i = 0; i < shirtColor.length; i++) {
        if (.checked = true) {
            // Set shirtColor variable to selected color
            var shirtColor = .checked;

            // Only one value can be selected so we're done
            return;
        }
    }
};
</script>
</head>

<body>
<p>Shirt Color:
<input type="radio" name="shirtColor" id="red" value="red" />
Red
<input type="radio" name="shirtColor" id="green" value="green" />
Green
<input type="radio" name="shirtColor" id="blue" value="blue" /> 
Blue</p>
<p>
<input type="button" id="saveButton" value="Save">
</p>
</body>
</html>
4

3 に答える 3

1

プレーンな Javascriptを使用すると、次のことができます。

saveButton.onclick = function() {       
    // Go through shirtColor rabio buttons to see which one is ticked
    var shirtColors = document.getElementsByName("shirtColor");
    for (var i = 0; i < shirtColors.length; i++) {
        var shirtColor = shirtColors[i];
        if (shirtColor.checked) {
            // Set shirtColor variable to selected color
            alert(shirtColor.value);

            // Only one value can be selected so we're done
            return;
        }
    }
};

この Fiddleを参照してください。

于 2013-01-30T22:06:19.267 に答える
0

あなたは近くにいます。<form>スクリプトにコンテキストを与えるために、これをでラップする必要があります。この場合、IDは必要ありません。

saveButton.onclick = function() {       
    var shirtColor = document.forms[0].shirtColor;
    for (var i = 0; i < shirtColor.length; i++) {
        if (shirtColor[i].checked == true) {
             return shirtColor[i].value;
        }
    }
}
于 2013-01-30T21:57:20.657 に答える
0

forループを次のように変更する必要があります

var cboxes = document.getElementsByName('shirtColor');
for(var i = 0; i < cboxes.length ; i++
{
    if(cboxes[i].checked)
        shirtColor = cboxes[i];
}

ただし、jquery を使用すると、はるかに簡単になります。

var shirtColor = $("input[name='shirtColor']:checked").val();
于 2013-01-30T22:00:15.827 に答える