Javascript单选按钮选择一个单选按钮时是否取消选择其他?

Javascript单选按钮选择一个单选按钮时是否取消选择其他?,javascript,html,Javascript,Html,我有两个选择汽车的单选按钮。只有两种选择:要么你可以选择宝马汽车,要么你可以选择奔驰汽车 以下是我的html代码: <label>Please specify car:</label>&nbsp; &nbsp; <label>BMW</label> <input type="radio" name="is_BMW" id="is_BMW" onchange="valueChanged()" /> &nbsp;&a

我有两个选择汽车的单选按钮。只有两种选择:要么你可以选择宝马汽车,要么你可以选择奔驰汽车

以下是我的html代码:

<label>Please specify car:</label>&nbsp; &nbsp;
<label>BMW</label>
<input type="radio" name="is_BMW" id="is_BMW" onchange="valueChanged()" />
&nbsp;&nbsp;
<label>Mercedes</label>
<input type="radio" name="is_Mercedes" id="is_Mercedes" onchange="valueChanged()" />
请指定车辆:
宝马
梅赛德斯
此事件的javascript函数是valueChanged(),非常简单:

<script>
    function valueChanged(){
        if(document.getElementById("is_BMW").checked == true)
        {
            document.getElementById("is_Mercedes").checked = false;
        }
        else
        {
            document.getElementById("is_BMW").checked = false;
        }
    }
</script>

函数值已更改(){
if(document.getElementById(“is_BMW”).checked==true)
{
document.getElementById(“is_Mercedes”).checked=false;
}
其他的
{
document.getElementById(“is_BMW”).checked=false;
}
}
我遇到的问题是:每当我点击BMW单选按钮,它就被修复了,我不能换成梅赛德斯

如果我先点击梅赛德斯单选按钮,然后我就可以切换到宝马,但再次,一旦我选择了宝马,我就不能再切换到梅赛德斯了,它得到了修复

我的Javascript有什么问题吗?因为我的Javascript知识告诉我我的Javascript代码没有问题。是别的吗?我应该使用jQuery来解决这个问题吗

编辑-1: 很抱歉,我忘了提到一个关键点——我需要在单选按钮更改时传递值。我特别抱歉有一个人立即回答了我的问题,我应该早点提到这一点,我的错

因此,我的实际Javascript应该是这样的:

<script>
        function valueChanged(){
            if(document.getElementById("is_BMW").checked == true)
            {
                document.getElementById("is_Mercedes").checked = false;
                document.getElementById("is_BMW").value = 1;
                document.getElementById("is_Mercedes").value = 0;
            }
            else
            {
                document.getElementById("is_BMW").checked = false;
                document.getElementById("is_BMW").value = 0;
                document.getElementById("is_Mercedes").value = 1;
            }
</script>

函数值已更改(){
if(document.getElementById(“is_BMW”).checked==true)
{
document.getElementById(“is_Mercedes”).checked=false;
document.getElementById(“is_BMW”)。值=1;
document.getElementById(“is_Mercedes”)。值=0;
}
其他的
{
document.getElementById(“is_BMW”).checked=false;
document.getElementById(“is_BMW”)。值=0;
document.getElementById(“is_Mercedes”)。值=1;
}

我将根据您的要求更改我的答案

在您的HTML中,为两个单选按钮指定相同的名称。这将负责选择和取消选择

<label>Please specify car:</label>&nbsp; &nbsp;
<label>BMW</label>
<input type="radio" name="car" id="is_BMW" />
&nbsp;&nbsp;
<label>Mercedes</label>
<input type="radio" name="car" id="is_Mercedes" />
说明:- “名称”设置告诉您该字段属于哪一组单选按钮。当您选择一个按钮时,同一组中的所有其他按钮都将被取消选择


单选按钮与复选框不同,因为一次只能选择一个元素。但是,为了使其工作,必须将单选按钮“分组”在一起

这是通过使用相同的
名称指定
输入
元素来实现的

在您的示例中,这可以通过更改HTML中的以下内容来实现:

<input type="radio" name="car_type" id="BMW" />
<input type="radio" name="car_type" id="Mercedes" />

获得所需的行为不需要额外的Javascript

希望这有助于提供一些额外的解释

编辑: 不确定您想做什么,但您可以通过简单地迭代Javascript中的radio元素来提取值:

var r = document.getElementsByName('car_type');
for (var i = 0, i < r.length; i++) {
    if (r[i].checked) {
        // insert code to use the checked value
        alert(r[i].value);
        break;
    }
}
var r=document.getElementsByName('car_type');
对于(变量i=0,i
不需要包含javascript函数。您可以使用Mritunjay code这些标签需要
来表示
属性(或者需要包装其输入)。它们也应该在输入的右侧,而不是左侧。@danielnixon感谢您指出这些。如果我需要在更改时传递值,该怎么办?这实际上是PHP应用程序的一部分,根据车辆选择,一些值会发送到数据库。如果选择了BMW,则
is_BMW
的值为1,
is_mercedes,它通过
$\u POST
发送到我的PHP代码,然后插入到数据库中。(
是\u bmw
是\u mercedes
是我数据库表中的两列)。如果选择Mercedes,则反之亦然。不,我不需要提取值。这就像一个开关:如果选择了BMW,则
是\u BMW
=1,
是\u Mercedes
=0。如果选择Mercedes,则反之亦然。
是\u BMW
是\u Mercedes
是我数据库表中的两列。在我的PHP代码中,使用
$\u POST
我可以得到这两个1和0值,然后运行
INSERT
查询将这些值传递给数据库。Savvy?好的,我明白了。然后我认为您的原始帖子中的Javascript代码工作得非常好。我只需删除
document.getElementById(“is_XXXX”)行即可.checked=false;
从代码块内部开始,因为这已经由无线电元素组处理。然后,应该可以了。
var r = document.getElementsByName('car_type');
for (var i = 0, i < r.length; i++) {
    if (r[i].checked) {
        // insert code to use the checked value
        alert(r[i].value);
        break;
    }
}