开发者问题收集

如何使用 javascript 获取单选按钮的值

2015-04-10
78

我不知道如何获取单选按钮的值。

我试过了所有方法,就是找不到正确的方法。这里有一个示例 这里

好吧,第一个 switch 可能不是使用 switch 语句的正确方法,尽管我喜欢这样做,因为它易于阅读和添加新选项。

警报语句显示 true 或 false。所以我尝试了一个 if 语句。这没有用。好吧,也许我必须把所有内容都输入出来。不,这也行不通。也许它需要一个数字?不。字符串?不。

所以我尝试了另一个 switch。还是不行。

有人能告诉我正确的方法吗?

function commitData()
    {           
        switch (true) {
            case document.getElementsByName('StatusOnHeader')[0]:
                alert('Edit');
                break;
            case document.getElementsByName('StatusOnHeader')[1]:
                alert('Add');
                break;
            default:
                alert('XXX');
                break;
        } 
        if (document.getElementsByName('StatusOnHeader')[0]) {
            alert("TRUE");
        } else {
            alert("FALSE");
        }
        if (document.getElementsByName('StatusOnHeader')[0] == true) {
            alert("TRUE");
        } else {
            alert("FALSE");
        }
        if (document.getElementsByName('StatusOnHeader')[0] == 1) {
            alert("TRUE");
        } else {
            alert("FALSE");
        }
        if (document.getElementsByName('StatusOnHeader')[0] == '1') {
            alert("TRUE");
        } else {
            alert("FALSE");
        }
        switch (document.getElementsByName('StatusOnHeader')[0]) {
            case true:
                alert('Edit');
                break;
            case false:
                alert('Add');
                break;
            default:
                alert('XXX');
                break;
        } 
    }
3个回答
if(document.getElementsByName('StatusOnHeader')[0].checked)
Sheldon Neilson
2015-04-10

布尔结果 (true / false)

var checkedOrNot = document.getElementsByName('StatusOnHeader')[0].checked;

字符串结果 ('已选中', '未选中')

var result = (document.getElementsByName('StatusOnHeader')[0].checked)?'Checked':'Not Checked';
Downgoat
2015-04-10
switch (true) {...}

true 不是变量;在此处插入一个变量

case variable: ...  

变量不常见;此处主要使用常量

document.formName.inputRadio[0..n].checked 

返回 false 或 true

getElementsByID()

未知。id 是唯一的,因此方法是 getElementById()

现在答案是:

<form action="" name="chooseAFormName">
    <input type="radio" name="StatusOnHeader" value="Edit">Edit existing
    <input type="radio" name="StatusOnHeader" value="Add" checked="checked">Add new
    <input type="submit" name="send_button" value="Save" onclick='commitData()'>
</form>

脚本部分:

function commitData() {
    if (document.chooseAFormName.StatusOnHeader[0].checked) {
        alert('first radio checked!');
        // insert here valuable stuff
    }
    if (document.chooseAFormName.StatusOnHeader[1].checked) {
        alert('second radio checked!');
        // insert here valuable stuff as well
    }
}
Nina Scholz
2015-04-10